2017-04-13 61 views
0

我想知道如何获得TextView的行数。 我的意思是,我知道他们有这个下面的代码:如何获取TextView的实际行数?

textview.setText(“Some text”); 
textview.post(new Runnable() { 
    @Override 
    public void run() { 
     int lineCount = textview.getLineCount(); 
     logw("Test", "Number of line :" + lineCount); 
    } 
}); 

在这里,你可以找到我的xml:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ellipsize="end" 
    android:maxLines="3" 
    android:text="Procedente igitur mox tempore cum adventicium nihil inveniretur, relicta ora maritima in Lycaoniam adnexam Isauriae se contulerunt ibique densis intersaepientes itinera pr"/> 

但问题是:

在我的XML,我把setMaxLine = 3 so在方法运行中,它总是返回3行而不是4 - 5或更多。

我不知道它是否清楚。

+0

您是否尝试过'textView.getLayout()getLineCount()'? – azizbekian

+0

maxLines用于限制textview到上述行的高度。 –

+0

@azizbekian是的我已经尝试textView.getLayout()。getLineCount() –

回答

0

你可以尝试设置addTextChangedListener上的TextView如下:

textview.addTextChangedListener(new TextWatcher() { 
       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

       } 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
       } 

       @Override 
       public void afterTextChanged(Editable s) { 
        // perform your process 
        Log.e("line count", String.valueOf(textview.getLineCount())); 
       } 
      }); 
0

试试这个:

textview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
       @Override 
       public void onGlobalLayout() { 
        textview.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
    textView.getLayout().getLineCount()    
    } 
      }); 
+0

我不能使用removeOnGlobalLayoutListener,因为我在API 15上 –

相关问题