當前位置:編程學習大全網 - 源碼下載 - textview的getLineCount()方法該怎樣使用

textview的getLineCount()方法該怎樣使用

首先得獲得TextView的真實行數,於是調用getLineCount()方法,結果這個值獲得的始終為0 ,關於如何獲得真實的行數值,有以下解決方案:

1,繪畫完成之前調用的,在這裏面可以獲取到行數,當然也可以獲取到寬高等信息。

ViewTreeObserver vto = mContent.getViewTreeObserver();

vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

if(mContent.getLineCount() == 1){

} else {

}

return false;

}

});

2,繪畫完成之後調用的,在這裏面可以獲取到行數,當然也可以獲取到寬高等信息。

mContent.setText(barModel.getContentTitle());

mContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

mContent.getViewTreeObserver().removeGlobalOnLayoutListener(this);

if(mContent.getLineCount() == 1){

Log.e("TAG","---------"+mContent.getLineCount());

} else {

}

}

});

3,

使用post,繪制完成在調用getLineCount()

mContent.post(new Runnable() {

@Override

public void run() {

if(mContent.getLineCount() == 1){

mContent.setPadding(0,(int)mCwww.cdccgs.com?tResources().getDimension(R.dimen.space_12),0,0);

mReadNum.setPadding(0,0,0,(int)mCwww.cdccgs.com?tResources().getDimension(R.dimen.space_12));

mCollectionNum.setPadding(0,0,0,(int)mCwww.cdccgs.com?tResources().getDimension(R.dimen.space_12));

} else {

mContent.setPadding(0,0,0,0);

mReadNum.setPadding(0,0,0,0);

mCollectionNum.setPadding(0,0,0,0);

}

}

});

經過測試三種方案均可行,但是如果是listview中TextView,根據LineCount切換位置,會出現

TextView復用,導致TextView位置在滑動速度快的情況下位置瞬間混亂,采用第三種方案沒有此問題,至於采用前兩種方案出現問題的原因不得而知,有遇到這種情況的可以壹起探討壹下原因。

  • 上一篇:2021翻倍黑馬均線特征是什麽
  • 下一篇:八卦圖上的符號各代表什麽
  • copyright 2024編程學習大全網