是否有可能知道可见单词的数量?不是全长?
Is it possible to know the number of visible words? not full length?
是否可以知道可见字数?不是全长?
我从 100 个单词添加到 textView 字符串。但可见的只有10个字。我怎么知道只有10个字?
Log.e("asdas", String.valueOf(messageView.length()));
不工作
抱歉,如果这个问题太复杂了:((
我不知道你为什么需要这个,但它是这样的:
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
int visibleWords = displayed.split(" ").length
对于任何有兴趣并获得 NullPointerException 的人,这里是 Christian 的回答的一个工作示例:
ViewTreeObserver vto = textView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
int visibleWords = displayed.split(" ").length;
}
});
是否可以知道可见字数?不是全长?
我从 100 个单词添加到 textView 字符串。但可见的只有10个字。我怎么知道只有10个字?
Log.e("asdas", String.valueOf(messageView.length()));
不工作
抱歉,如果这个问题太复杂了:((
我不知道你为什么需要这个,但它是这样的:
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
int visibleWords = displayed.split(" ").length
对于任何有兴趣并获得 NullPointerException 的人,这里是 Christian 的回答的一个工作示例:
ViewTreeObserver vto = textView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
int visibleWords = displayed.split(" ").length;
}
});