我有一个TextView,我想限制它的字符。实际上,我可以这样做,但我正在寻找的事情是如何在字符串的末尾添加三个点(…)。这一个显示文本已经继续。这是我的XML,但没有点,尽管它限制了我的文本。

<TextView 
        android:id                      = "@+id/tvFixture"
        android:layout_width            = "wrap_content"
        android:layout_height           = "wrap_content"
        android:layout_toLeftOf         = "@id/ivFixture_Guest"
        android:text                    = "@string/test_06"
        android:lines                   = "1"
        android:ems                     = "3"
        android:gravity                 = "right"
        style                           = "@style/simpletopic.black" 
        android:ellipsize="end"/>

当前回答

通过使用,我得到了预期的结果

android:maxLines="2"
android:minLines="2"
android:ellipsize="end"

诀窍是将maxLines和minLines设置为相同的值…和不只是android:lines = "2",不做的把戏。 此外,您还避免了任何弃用的属性。

其他回答

我认为你想限制宽度为一行,而不是限制它的字符?由于singleLine已弃用,您可以尝试使用以下组合:

android:maxLines="1"
android:scrollHorizontally="true"
android:ellipsize="end"

代码:

TextView your_text_view = (TextView) findViewById(R.id.your_id_textview);
your_text_view.setEllipsize(TextUtils.TruncateAt.END);

xml:

android:maxLines = "5"

e.g.

在马太福音第13章,门徒问耶稣为什么用比喻对众人说话。耶稣回答说、天国的奥秘、只赐给你们、叫你们知道。只是没有赐给他们。

输出: 在马太福音第13章,门徒问耶稣为什么用比喻对众人说话。他回答说:“交给你们是要你们知道……

简单的三点

android:layout_width="100dp" <!--your dp or match_parent or 0dp>
android:maxLines="2" <!--count your line>
android:ellipsize="end"

如。你可以使用

android:maxLength="13"

这将限制textview长度为13,但问题是,如果你试图添加3点(…),它不会显示它,因为它将是textview长度的一部分。

     String userName;
     if (data.length() >= 13) {
            userName = data.substring(0, 13)+ "...";

     } else {

            userName = data;

    }
        textView.setText(userName);

除此之外,你必须使用

 android:maxLines="1"

通过这种方式,你可以设置视图的最大长度,同时,你将在结尾有点(“num”是dp的数量):

android:maxWidth="{num}dp"
android:ellipsize="end"