textView.getLineCount()未按预期工作

时间:2015-08-26 09:16:15

标签: android listview textview

TextViewListView
我通过类似下面的编码设置了TextView的maxLine。

view.textView.setText("....... Long String.........");
    view.textView.post(new Runnable() {
       @Override
       public void run() {

        if(view.textView.getLineCount > 4) {
           view.tv_read_more.setVisibility(View.VISIBLE);
           view.textView.setMaxLines(4);
        }
       }
    });

问题: textView.setMaxLine()第一次无效。
ListView向下滚动并向上滚动

后,textView受到影响

1 个答案:

答案 0 :(得分:4)

我在RecyclerView中有一个例子,这很好用。

 mDes.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
                    mDes.getViewTreeObserver().removeOnPreDrawListener(this);
                    int lineCount = mDes.getLineCount();
                    Log.e("TreeObserver", "onBind: " + lineCount1);
                    if (lineCount1 < 4 || isExpand) {
                        mArrowContainer.setVisibility(View.GONE);
                    } else {
                        mArrowContainer.setVisibility(View.VISIBLE);
                    }
                    return true;
                }
            });