使用ViewPager在多个TextViews/Fragments之间拆分文本

coc*_*edo 7 android textview android-fragments android-viewpager

我正在尝试使用Android兼容性库将一些文本分割为加载到ViewPager中的多个片段.这个想法是有类似于Kindle应用程序的东西,你可以在其中翻阅多个文本页面.

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

这看起来是一种合理的方法,还是我会以错误的方式解决这个问题?

avi*_*mak 1

因为你无法提前获取 TextView 的高度

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

  • 您可以measure()使用ViewPager/TextView一次并getMeasuredHeight()/getMeasuredWidth()在计算中使用它
  • 您可以等待ViewTreeObserver.OnGlobalLayoutListener.onGlobalLayout()并使用“标准”布局测量来完成同一件事
  • (不推荐)你可以使用(“屏幕高度”-“装饰高度”)/“文本高度(字体+间距)”来知道你的TextView可以容纳多少文本行
  • 等等等等。