android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
程序员文章站
2022-10-09 15:11:21
布局文件中的textview属性复制代码 代码如下:
<textview
android:id="@+id/businesscardsingle_content_abstract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margintop="5dp"
android:linespacingmultiplier="1.0"
android:lines="6"
android:text="@string/agrinbusiness_content"
android:textcolor="#7f7f7f"
android:textsize="13sp" />
viewtreeobserver observer = textabstract.getviewtreeobserver(); //textabstract为textview控件
observer.addongloballayoutlistener(new ongloballayoutlistener() {
布局文件中的textview属性
复制代码 代码如下:
<textview
android:id="@+id/businesscardsingle_content_abstract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margintop="5dp"
android:linespacingmultiplier="1.0"
android:lines="6"
android:text="@string/agrinbusiness_content"
android:textcolor="#7f7f7f"
android:textsize="13sp" />
在java代码中控制文本的显示行数
复制代码 代码如下:
viewtreeobserver observer = textabstract.getviewtreeobserver(); //textabstract为textview控件
observer.addongloballayoutlistener(new ongloballayoutlistener() {
@override
public void ongloballayout() {
viewtreeobserver obs = textabstract.getviewtreeobserver();
obs.removeglobalonlayoutlistener(this);
if(textabstract.getlinecount() > 6) //判断行数大于多少时改变
{
int lineendindex = textabstract.getlayout().getlineend(5); //设置第六行打省略号
string text = textabstract.gettext().subsequence(0, lineendindex-3) +"...";
textabstract.settext(text);
}
}
});
上一篇: Coreldraw(CDR)打造黄金立体字实例教程
下一篇: 白领眼干滴药水 越滴越干是为什么