将大量文本 (spannablestring) 加载到 Android textview 需要 200 毫秒以上?
Loading lots of Text (spannablestring) into Android textview taking 200ms plus?
我目前正在 Android 中开发基于段落的圣经,因此 ListView 将无法工作。我为加载的每个新章节使用片段实现了一个 ViewPager。我遇到的问题是,当我设置 TextView 文本 (mytextview.settext()) 时,仅显示一章就需要 200 多毫秒。请注意,我加载到 TextView 中的文本是一个带有红色字母、诗句等数据的 SpannableString。为了滚动,TextView 被封装在 ScrollView 中以实现平滑滚动。关于如何在 TextView 中实现延迟加载系统或如何加快显示文本的过程的任何想法?任何答案将不胜感激!
虽然你说这行不通,但我建议使用带有自定义 Adapter
的 ListView
(或最新 API 的 RecyclerView
)来处理这而不是单个 TextView
。只要您遵循 Adapter
中的 "ViewHolder" 模式,带有自定义 Adapter
的 ListView
将是管理大量文本的更有效方式。章节中的每个段落都可以是一个单独的列表项,当用户将段落滚动到屏幕外时,该列表项将被回收。 Android中自定义ListView
Adapters
的教程网上有很多,这里不再赘述;但是,我希望这篇 post 可以为您指明正确的方向。
祝你好运,编码愉快!
我目前正在 Android 中开发基于段落的圣经,因此 ListView 将无法工作。我为加载的每个新章节使用片段实现了一个 ViewPager。我遇到的问题是,当我设置 TextView 文本 (mytextview.settext()) 时,仅显示一章就需要 200 多毫秒。请注意,我加载到 TextView 中的文本是一个带有红色字母、诗句等数据的 SpannableString。为了滚动,TextView 被封装在 ScrollView 中以实现平滑滚动。关于如何在 TextView 中实现延迟加载系统或如何加快显示文本的过程的任何想法?任何答案将不胜感激!
虽然你说这行不通,但我建议使用带有自定义 Adapter
的 ListView
(或最新 API 的 RecyclerView
)来处理这而不是单个 TextView
。只要您遵循 Adapter
中的 "ViewHolder" 模式,带有自定义 Adapter
的 ListView
将是管理大量文本的更有效方式。章节中的每个段落都可以是一个单独的列表项,当用户将段落滚动到屏幕外时,该列表项将被回收。 Android中自定义ListView
Adapters
的教程网上有很多,这里不再赘述;但是,我希望这篇 post 可以为您指明正确的方向。
祝你好运,编码愉快!