我有一个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"/>
你可以限制你的文本视图的字符数量,并在文本后添加(…)。
假设你只需要显示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
编辑:
我已经根据你的有限编号增加了对较少字符的检查。的字符。
我正在使用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)进行了测试,它工作得很好,没有任何崩溃。
为了使用android:ellipsize属性,你必须限制TextView的布局宽度,这样文本就超出了TextView视图的边界。
所以,android:layout_width属性在这里起着关键作用,相应地设置它。
一个例子可以是:
<TextView
android:layout_width="120dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:text="This is a very long text to be displayed"
android:textSize="12sp"
android:maxLines="1"
/>
现在,这里如果文本在android:text="这是一个很长的文本要显示"从TextView与android:layout_width="120dp", android:ellipsize="end"将截断文本和地方…(3点)在它后面。这太长了……将显示在TextView中。