Android极长文:滚动创意?

时间:2010-08-01 19:07:52

标签: android scroll

我被要求构建一个允许用户滚动大量文本的应用程序。该文本将长达数千页。 (每个页面都有ID和ID,所以我们也有导航器。)

问题:有多个文本滚动的最佳方法是什么,但是根据需要(向上或向下)按需加载更多文本。我不想加载整个文本流,因为这需要很长时间。它需要以不同的颜色和样式显示文本。例如,文本中的标题将为粗体。

我考虑过webview,但我不得不将整个文本加载到其中吗?

思考:“战争与和平小说的浏览器”

想法?

1 个答案:

答案 0 :(得分:4)

假设文本具有合理大小的块(例如标题和段落),我将使用ListView,行为TextViews。您可以禁用分隔符,并且应该能够设置行布局以使其看起来是连续的文本流(利用行之间的过渡来为您提供段落间距)。 TextView支持Spannable内容,可通过Html.fromHtml()从HTML轻松获取。

您的ListAdapter需要知道您需要多少行(标题和段落的总和)。由于你无法保留RAM中的所有文本,ListAdapter很可能需要有点虚拟,能够根据需要从闪存中获取大量文本,并为快速短程缓存适量的数据滚动。

这种方法允许您利用ListView的行回收,最大限度地减少RAM使用,同时仍然为您提供合理的格式控制。

如果WebView格式不足,有些人尝试将ListView用作TextView中的行。但是,我不知道这有多好,因为WebView是可滚动的,并且将可滚动项放在其他可滚动项(ListView)中通常是有问题的。