有没有办法为嵌套在ScrollView中的TextView创建类似RecyclerView的行为?

问题描述 投票:1回答:1

我正在创建一个在TextView中显示文本的应用程序。由于文本可能很大,因此将其嵌套在ScrollView中。

在文本很大之前,一切都很好,例如整本书的内容。对于如此大的内容,由于内存需求大,应用程序的UI开始无响应。

解决方案1只需将书的内容拆分并显示在多个页面中,例如通过使用ViewPager2。

是的,这肯定可以。但是,在我的情况下,文本的“无限”垂直滚动是UI设计的决定,因此,此解决方案不是我的选择。

解决方案2使用RecyclerView并将“书”的每一行呈现为单独的TextView实例。

这将是一个很好的解决方案,但不幸的是,我需要支持文本选择。此解决方案将阻止用户选择多行文本。

问题您能否提出任何允许“无限”(类似于RecyclerView的)滚动文本同时保留所有文本选择和文本格式化功能的解决方案?

android android-recyclerview textview infinite-scroll android-scrollview
1个回答
0
投票

RecyclerView是您最好的选择:

  • 我知道您在问题中提到了它,但是您采用了错误的方法,因为您说过您想将书的每一行都渲染为单独的TextView项(这不是解决问题的方法) 。

代替:

1] recyclerView的项目将是包含LinearLayout的某些TextView(类似于页面项目)。

2]假设这本书是一本大书String,将其拆分为多个子字符串(以子字符串就像一页的方式),然后将这些子字符串大块放入某个列表中:

List<String> chunksList = new ArrayList<String>();

3)您稍后将此列表传递给适配器,并根据位置呈现每个子字符串。

   adapter = new bookAdapter(........., chunksList);

4)本书String的大小无关紧要,您都可以动态滚动。因为它取决于chunksList以及它包含多少个子字符串(请记住,chunksList对于要渲染的每本书都是不同的。)

5)也可以使用此方法进行分页。

祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.