我想要做的是将长文本划分为页面,这样当用户点击下一页/上一页按钮时,我可以在一个 TextView 中逐一显示它们。我需要的是知道最后显示的字符索引,但这并不那么简单......
我已经尝试过这个:
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
来自 LINK
但是 getLayout 返回 null
同样使用 getWidth/getHeight 是没有用的,因为它们在“onCreate”函数中返回 0...
感谢您的帮助!
最佳答案
从另一个方向解决问题可能更有意义:您有一个很长的String
文本。然后,您决定一页上可以容纳多少内容,并将 String
分解为多个子字符串的数组,每个子字符串对应一个页面。然后,您可以简单地将页面索引存储在某处,并将其用作将整个文本分解为子字符串时创建的 String
数组的索引。
这假设有一种算法可以确定页面中可以容纳多少文本。看看this question .
关于android - TextView - 获取可见文本,以及如何将字符串划分为页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235665/