我有一个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"/>

当前回答

我正在使用horizontal Recyclerview。 1)这里在CardView, TextView得到扭曲垂直时使用

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

检查粗体TextViews Wyman Group, Jaskolski…

2)但是当我使用singleLine和ellipsize -

android:ellipsize="end"
android:singleLine="true"

检查粗体TextViews Wyman Group, Jaskolski…

第二种解决方案对我来说很有效(使用singleLine)。我也在操作系统版本:4.1及以上(直到8.0)进行了测试,它工作得很好,没有任何崩溃。

其他回答

Use

android:单行模式= " true " android: maxLines = " 1 " 应用:layout_constrainedWidth = " true "

这是我的完整的TextView看起来:

    <TextView
    android:id="@+id/message_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="5dp"
    android:maxLines="1"
    android:singleLine="true"
    android:text="NAME PLACEHOLDER MORE Text"
    android:textColor="@android:color/black"
    android:textSize="16sp"

    android:textStyle="bold"
    app:layout_constrainedWidth="true"
    app:layout_constraintEnd_toStartOf="@id/message_check_sign"
    app:layout_constraintHorizontal_bias="0"
    app:layout_constraintStart_toEndOf="@id/img_chat_contact"
    app:layout_constraintTop_toTopOf="@id/img_chat_contact" />

你只要改变…

android:layout_width="wrap_content"

使用下面这行

android:layout_width="match_parent"

……

   <LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerVertical="true"
       android:layout_marginLeft="10dp"
       android:layout_marginTop="10dp"
       android:layout_toRightOf="@+id/visitBox"
       android:orientation="vertical" >

             <TextView
                  android:id="@+id/txvrequestTitle"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:text="Abcdefghighiklmnon"
                  android:textAppearance="? 
                  android:attr/textAppearanceLarge"
                  android:textColor="@color/orange_color" />

   </LinearLayout>

添加“…”,如果太长的话,就在文章结尾:

检查文本宽度是否恒定 把这两行加起来 android: ellipsize = "结束" android: maxLines =“1”

约束布局中的textview的完整代码:

<TextView
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="1"
        android:textSize="15sp"
        android:textAllCaps="false"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="parent" />

我认为你给固定的高度和宽度的文本视图。那么你的解决方案就会起作用。

你可以限制你的文本视图的字符数量,并在文本后添加(…)。 假设你只需要显示5个字母,然后你需要显示(…),只需执行以下操作:

String YourString = "abcdefghijk";

if(YourString.length()>5){

YourString  =  YourString.substring(0,4)+"...";

your_text_view.setText(YourString);
}else{

 your_text_view.setText(YourString); //Dont do any change

}

一个小hack ^_^。虽然这不是一个好的解决方案。但有一项工作对我很有用:D

编辑: 我已经根据你的有限编号增加了对较少字符的检查。的字符。