我有一个观点lsit和我,我需要添加一些文字。 在适配器,我需要追加......在最后,我用我给出以下
android:ellipsize="end"
在仅示出2行例如:
asdnfsdfdsf asdfsdfasdf
sdfsd sdfsdf sdfsd广告...
当我给
android:ellipsize="start"
这是因为:
asdnfsdfdsf asdfsdfasdfd
... sdfsd sdfsdf sdfsd广告
完整的代码我使用:
<TextView android:layout_width="wrap_content" android:background="#016A7D"
android:layout_height="80dp" android:textColor="#000000"
android:maxLines="4"
android:id="@+id/list_report_desciption"
android:ellipsize="end"
/>我得到的输出是:
究竟会智慧的地球
看起来像? 最近怎么变化? 一种...
实际上它包含了超过6行
是否有我需要设置,这样我需要得到3条线的任何东西
谢谢
文字ellipsization似乎马车,accroding本报告: http://code.google.com/p/android/issues/detail?id=10554
一种解决方法允许ellipsizing一行文本,通过设置android:singleLine
属性为true。 但是,该属性是不。
没有什么工作对我来说:-(
我只是固定的长度。 切在长度字符串,之后追加“...”。
现在,它为我工作。
我一直在寻找这一个简单的解决方案我自己,我结束了类似:
private String getTextWithMoreIndicator(TextView textView, String text) {
long maxVisibleChars = textView.getPaint().breakText(text, true, textView.getMeasuredWidth(), null);
if(maxVisibleChars < text.length()) {
text = text.substring(0, (int)maxVisibleChars -3) + "...";
}
return text;
}
你接受的解决方案将不会在所有设备上正确缩放。
原因 :“一”是不是“A”更小的宽度,所以,如果你是基于一些大小截取字符串(比如15个字母),并通过添加代码“...”。 您可能会看到不期望的结果。
现在来解决: -
解决方案:
解决方案#1:以下3个属性添加到您的TextView,你会得到你想要的结果:)
<TextView
android:ellipsize="end"
android:lines="1"
android:scrollHorizontally="true" />
解决方案2:另一种解决方法可能是,你可以决定滚动字幕文本(花哨的动画从向右移动文本到左)。 为此你需要按照你的TextView XML属性: -
<TextView
android:id="@+id/my_text_view"
android:ellipsize="marquee"
android:lines="1"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever" />
然后在你的代码,你需要通过ID来获得的TextView及放入以下行: -
TextView myTextView = (TextView) findViewById(R.id.my_text_view);
myTextView.setSelected(true);
####编辑: - ####
我想通了,我的解决办法的Android版本低于2.3.x版本,我们需要添加下面一行在我们的TextView XML较大的工作: -
android:singleLine="true"
虽然它是一个过时的属性,但是你要添加这个,否则选取框或“...”不会工作。
希望这个答案:)