TextView-获取可见文本,以及如何将字符串分为页面



我想做的是将长文本分为页面,因此当用户命中next/prev按钮时,我可以一一显示它们一对一的文本视图。我需要知道最后显示的字符索引,但是那不是那么简单....

我尝试了以下方法:

int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);

frrom链接

但是getlayout返回null

也使用getwidth/geteight是没有用的,因为它们在" ongreate"函数中返回0 ...

感谢您的任何帮助!

从另一个方向解决问题可能更有意义:您的文本有很长的 String。然后,您决定可以在页面上适合多少,然后将String分解为多个子字符串的数组,每个页面一个。然后,您可以简单地将页面索引存储在某个地方,然后将其用作索引中的String数组,然后将整个文本分解为子字符串。

这假定有一种算法可以找到可以在页面中适合的文本。看看这个问题。

我想出了一种非常有效的方法,可以在数量的页面上显示长字符串。 - 我在文本视图中显示长文本并禁用滚动 - 我然后在单个屏幕上查找布局和行中的行,因此我知道会跨过多少个屏幕(页面),然后每当用户单击一个按钮要转到下一页或清理屏幕以转到下一页,然后我使用texview.scrollto()函数移动到线数(屏幕上的许多)。因此,它变得与移动下一页一样好

最新更新