首页 > 代码库 > android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法

android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法

布局文件:

<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() {   @Overridepublic 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);  }  }}); 

 

android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法