相对于屏幕高度将一个TextView分割成多个TextView

3
所以我有一个我认为相当复杂的问题。我有一个巨大的TextView,长度超过了几个屏幕。我想要做的是将TextView分割成较小的TextView,每个TextView的高度与可见屏幕一样(所以没有垂直滚动),并将这些较小的TextView放置在一个水平滚动的画廊中。我可以轻松地完成后者,但我想不出一个好的方法来拆分TextView。值得注意的是,TextView中包含许多不同样式的文本(不同大小、间距等)。
我不一定在寻找解决方案,但建议肯定会有帮助和欢迎的。

你找到解决方案了吗? - Khalid ElSayed
@KhalidElSayed 不涉及 TextView。 我不记得我最终使用了什么,因为这是3年前的事了。 - Jason Robinson
1个回答

2
您可以看看AndroViewsandroid-viewflow。它们提供了您所说的水平分页功能,其中android-viewflow由适配器支持。
至于拆分TextView,您可以子类化onMeasure()并在那里开始计算大小。您还可以查看FBReader的实现方式,因为它几乎完全做到了您所说的事情。

实际上,AndroViews可能并不完全适合。它不能由适配器支持,因此您必须自己创建和填充所有视图。 - Steve Pomeroy
感谢您的回复,但似乎您提供的库只是创建了一个水平滚动视图,而没有处理当一个项目的大小超过屏幕长度时的情况,这正是我所需要的。我基本上需要传入一个视图,然后由适配器将其拆分为水平视图。 - Jason Robinson
当然。我在这里建议的部分是创建一个自定义TextView和自定义适配器,它们可以一起按照您想要的方式拆分内容。您可以重写onMeasure()方法,使用各种Paint文本测量方法来测量文本的高度。当超出边界时,让它与您的适配器通信以添加另一个虚拟“页面”。您可能只需要渲染±1页,以处理翻页大小。 - Steve Pomeroy

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