使用ViewPager将文本分割成多个TextView/片段

7
我正在尝试使用Android兼容性库将一些文本拆分为多个片段加载到ViewPager中。这样可以实现类似Kindle应用程序的效果,您可以在多页文本之间进行滑动。
最初,我的文本来源于strings.xml中定义的字符串。我使用算法确定设备屏幕的高度,然后相应地将此字符串拆分为ViewPager的若干项。由于无法提前获取TextView的高度,因此只能使用百分比值确定每个页面上的TextView的最大大小(这似乎有点丑陋)。
这种方法是否合理,或者我错了呢?

我写了一个例子,但我不喜欢它。我也想知道如何实现更好的方法。 - FTI
首先,我不会在strings.xml中使用大量文本。相反,我会导入一个.txt文件或类似的文件。一旦加载到片段中,您应该能够创建一个if语句,以便在当前页面填满时将文本移动到另一页。 - Ryan Sayles
1个回答

1
由于您无法提前获取TextView的高度,这取决于您所说的“提前”是什么意思(时间==文本处理?)。
您可以测量一次您的ViewPager/TextView并在计算中使用其getMeasuredHeight()/getMeasuredWidth()。
您可以等待ViewTreeObserver.OnGlobalLayoutListener.onGlobalLayout()并使用“标准”布局测量来完成同样的事情。
(不建议)您可以使用(“屏幕高度”-“装饰高度”)/“文本高度(字体+间距)”来知道有多少行文本适合您的TextView。
等等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接