我想知道如何获得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 所以在方法运行中,它总是返回3行而不是4 - 5或更多。
我不知道它是否清楚。
答案 0 :(得分:0)
您可以尝试在textview上设置addTextChangedListener
,如下所示:
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()));
}
});
答案 1 :(得分:0)
试试这个:
textview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
textview.getViewTreeObserver().removeOnGlobalLayoutListener(this);
textView.getLayout().getLineCount()
}
});