是否有可能知道可见单词的数量?不是全长?

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;
            }
        });