在单个活动中将大字符串显示为多个页面

时间:2013-01-05 10:56:42

标签: android

我对android开发很新。我正在尝试创建一个简单的两个基于活动的ebbok类型的应用程序,其中activity1是内容列表,activity2显示详细信息。我在Activity1中有一个listview,其中列出了内容表。点击任何特定内容后,我加载activity2。在onCreate的{​​{1}}中,我将内容加载到字符串中(来自资源中的txt文件)。并在textView中显示(在activity2。xml中定义)。到现在为止还挺好。现在的挑战是以页面方式显示内容,因为到目前为止,我的所有字符串都被加载到activity2中的单个页面中。所以我在activity2的底部添加了两个按钮(在activity2中定义)。我现在的计划逻辑是

  1. 获得屏幕高度(我可以得到)
  2. 从1)获得botton高度并减去2)。现在我无法做到这一点,因为我无法在activity2.xml的{​​{1}}中获得按钮高度
  3. 然后找到我可以在一个页面中放入多少文本,相应地查找页面数,使用页面索引和使用页面分隔符,当用户单击“下一步”按钮时,将剩余文本加载到下一页中。
  4. 所以我需要帮助 - 如何获得按钮宽度,如我在2)中提到的 - 您可以分享以执行上述3)的任何示例代码也将对我有帮助。

    来自任何一位专家的任何帮助都将非常感谢。

2 个答案:

答案 0 :(得分:0)

使用Fragements可以解决您的问题。

Fragements

Fragment表示Activity中的行为或用户界面的一部分。您可以在单个活动中组合多个片段以构建多窗格UI,并在多个活动中重用片段。您可以将片段视为活动的模块化部分,它具有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(有点像“子活动”,您可以在不同的活动中重复使用)。

例如,新闻应用程序可以使用一个片段显示左侧文章列表,另一个片段显示右侧文章 - 两个片段并排显示在一个活动中,每个片段都有自己的片段一组生命周期回调方法并处理自己的用户输入事件。因此,用户可以选择文章并在同一活动中全部阅读,而不是使用一个活动来选择文章和另一个活动来阅读文章

有关更多关于fragements的信息,请访问this link。 希望它会对你有所帮助。

答案 1 :(得分:0)

我想出了一种在多个页面中显示长字符串的高效方法。 - 我在文本视图中显示长文本并禁用滚动 - 我然后在单个屏幕上找到布局和线条中的线条,因此我知道长字符串跨越多少个屏幕(页面) - 然后每当用户单击一个按钮转到下一页或滑动屏幕转到下一页然后我使用TexView.scrollTo()函数移动到前进的行数(在屏幕上)。所以它就像移动到下一页一样好