分割文本跨多个TextViews/ fragment使用ViewPager



我试图分割一些文本跨多个碎片加载到使用Android兼容性库的ViewPager。这个想法类似于Kindle的应用程序,你可以在多个页面上滑动文本。

最初,我的文本源是在strings.xml中定义的字符串,我使用一种算法来确定设备屏幕的高度,然后将该字符串相应地拆分为ViewPager的许多项。因为你不能提前获得TextView的高度,我只是使用百分比值来确定在每个页面上设置TextView的最大大小(这似乎有点难看)。

这似乎是一个合理的方法,还是我的方法是错误的?

因为你不能提前得到TextView的高度

嗯,这取决于你所说的"提前"是什么意思(时间==文本处理?)。

  • 你可以把ViewPager/TextView改成measure(),然后用getMeasuredHeight()/getMeasuredWidth()来计算
  • 你可以等待ViewTreeObserver.OnGlobalLayoutListener.onGlobalLayout(),并使用"标准"布局测量非常相同的东西
  • (不推荐)你可以使用("屏幕高度"-"装饰高度")/"文本高度(字体+间距)"来知道有多少文本行将适合你的TextView
  • 等。等。

最新更新