我想要做的是将长文本分成页面,这样当用户点击下一个/上一个按钮时,我可以在一个文本视图中逐个显示它们。我需要的是知道最后显示的字符索引,但那不是那么简单....
我试过这个:
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);
frrom LINK
但是getLayout返回null
使用getWidth / getHeight也没用,因为它们在“onCreate”函数中返回0 ...
感谢您的帮助!
答案 0 :(得分:3)
从另一个方向处理问题可能更有意义:你有一个很长的String
文本。然后你决定你可以在页面上放多少,并将String
分成多个子串的数组,每个页面一个。然后你可以简单地在某个地方存储一个页面索引,并将其用作你将整个文本分解为子串时所做的String
数组的索引。
这假设有一种算法可以找到您可以在页面中放入多少文本。看看this question。
答案 1 :(得分:2)
我想出了一种在多个页面中显示长字符串的高效方法。 - 我在文本视图中显示长文本并禁用滚动 - 我然后在单个屏幕上找到布局和线条中的线条,因此我知道长字符串跨越多少个屏幕(页面) - 然后每当用户单击一个按钮转到下一页或滑动屏幕转到下一页然后我使用TexView.scrollTo()函数移动到前进的行数(在屏幕上)。所以它就像移动到下一页一样好