Sử dụng textView.getLayout() getEllipsisStart (0) chỉ hoạt động nếu android: = singleLine "true"
đây là một giải pháp mà sẽ làm việc nếu android: Maxlines được thiết lập:
public static String getVisibleText(TextView textView) {
// test that we have a textview and it has text
if (textView==null || TextUtils.isEmpty(textView.getText())) return null;
Layout l = textView.getLayout();
if (l!=null) {
// find the last visible position
int end = l.getLineEnd(textView.getMaxLines()-1);
// get only the text after that position
return textView.getText().toString().substring(0,end);
}
return null;
}
Hãy nhớ rằng: công trình này sau khi xem đã được nạp.
Cách sử dụng:
textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
Log.i("test" ,"VisibleText="+getVisibleText(textView));
}
});
Nguồn
2017-11-25 11:22:38
là một xấp xỉ okay? – Snowball
Xin chào. Tôi đang làm việc trên cùng một vấn đề. Bạn có giải pháp nào cho việc này không. Tôi cần phải tìm ra phần văn bản có thể nhìn thấy từ TextView. Bạn có thể giúp tôi được không? –
Theo như tôi biết, tôi không nghĩ rằng có một cách để làm điều này với TextView. – kosa