我想做的是将长文本分为页面,因此当用户命中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()函数移动到线数(屏幕上的许多)。因此,它变得与移动下一页一样好