我有一个完善的手机应用程序,但我想添加对平板电脑的支持。主视图包含一个ListView,它使用SimpleCursorAdapter从数据库中获取列表。当用户点击某个项目时,会启动一个活动(特定于该ID!)。某些活动共享相同的视图,但信息不同。每个活动都扩展了FragmentAcivity。在平板电脑中,由于我有更多的屏幕空间,我想在左侧显示ListView,当用户点击一个项目时, SPECIFIC 活动将显示在左侧。它会在页面的中间位置模仿here找到的图像。我对碎片知之甚少,但我怎么能做到这一点呢?如果您需要更多信息,请与我们联系。
答案 0 :(得分:3)
出于本回答的目的,我将使用“主要活动”来指代具有ListView
和“其他活动”的那个,以指代您想要出现在右侧的那个
这是一个缩略图草图:
将其他每个活动转换为UI由片段定义的活动。
为平板电脑的主要活动创建布局,除了ListFragment
之外,还包含FrameLayout
容器,其中包含其他活动的位置。保留主要活动的现有布局。
在onListItemClick()
的{{1}}中,将事件传递给主要活动(例如ListFragment
)
在主要活动中的事件处理方法(例如((MainActivity)getActivity()).heyDoSomething(position)
)中,查看您是否拥有heyDoSomething()
。如果这样做,请运行FrameLayout
以使用其他活动中的相应片段替换FragmentTransaction
的内容。如果你不这样做,那么你就在手机上,在这种情况下你会开始其他活动之一。
Here is a sample application演示了部分内容(减去了几个“其他活动”,因此列表点击只会将新内容加载到右侧的现有片段中)。
答案 1 :(得分:0)