当前位置: 首页 > 知识库问答 >
问题:

有没有一种方法可以为嵌套在ScrollView中的TextView创建类似RecyclerView的行为?

景哲
2023-03-14

我正在创建一个在TextView中显示文本的应用程序。由于文本可能非常大,它嵌套在ScrollView中。

在文本变得很大之前,一切都很好——例如整本书的内容。对于如此大的内容,应用程序的用户界面开始没有响应,因为内存需求很大。

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

是的,这肯定行得通。然而,在我的情况下,文本的“无限”垂直滚动是UI设计的决定,因此这个解决方案对我来说不是一个选项。

解决方案2使用RecyclerView并将“book”的每一行渲染为单独的TextView实例。

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

问题你能提出任何解决方案,允许无限(类似回收器视图)滚动文本,同时保留所有文本选择和文本格式功能吗?

共有1个答案

薛文斌
2023-03-14

RecyclerView是您的最佳选择:

    < li >我知道您在问题中提到了这一点,但您的方法是错误的,因为您说您希望将书的每一行都作为单独的TextView项呈现(这不是实现这一点的方法)。

相反:

1) recyclerView的项目将是一些LinearLayout,其中包含一个文本视图[它将类似于页面项目]。

2)假设图书是一个大的< code >字符串,将它分成子字符串块(子字符串就像一个页面),并将这些子字符串块放在某个列表中:

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

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

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

4) 不管这本书有多大,您都可以动态滚动。因为这取决于chunksList及其包含的子字符串数量(请记住,对于要呈现的每本书,chunksList将有所不同)。

5)同样使用这种方法,你可以使用分页。

祝你好运。

 类似资料:
  • 问题内容: 我一直在寻找使用CSS编写的类似Google Chrome的标签,但是找不到。 我正在尝试复制外观,以便在Web应用程序或网站中使用它。 问题答案: 是的,用css3 艾夫(Ive)发表了一篇关于如何对其进行深入研究的博客,可悲的是,除非您使用图像,否则诺努斯将无法继续工作 编辑: 删除了对redeyeoperations的旧引用,现在导致其链接服务器场。这是一个较轻的版本,它在第三方

  • 在< code>NestedScrollView的末尾有一个< code > endlesscrecyclerview 。< code>EndlessRecyclerView表示:当用户滚动到RecyclerView的底部时,它会加载更多数据。这已经在其他地方实现并运行了,但是当我将recyclerView放入< code>NestedScrollView时,< code>OnScrollList

  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 问题内容: doIt函数将打印“ dad”。有没有办法让它打印“儿子”? 问题答案: 是。但是就变量而言,它会被覆盖(将新值赋予变量。将新定义赋予函数是Override)。 在父类的块中使用时,该值将得到反映 如果变量是静态的,则在初始化时使用静态块更改其值, 否则更改构造函数。 你还可以稍后在任何块中更改该值。它将反映在超一流