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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM