我遇到了一个我无法解决的问题,我搜索了很多但找不到解决方案。
在我的应用程序中,我有一个包含3页的ViewPager。这些页面应该是碎片。这没关系。但是,其中两个页面必须是主/详细信息流(一个用于朋友列表,一个用于新闻提要)。当我使用eclipse 2片段创建主/细节流时,会创建2个活动。 ItemListActivity(需要显示的那个)实现片段的Callbacks,这是一个Activity,但ViewPager只接受片段内部的片段。
所以问题是:如何将主/细节流放在ViewPager中?
非常感谢所有帮助! 我在这里完全没有想法。
由于
答案 0 :(得分:11)
主/细节流只是在同一内容视图中使用的2个片段的昵称,一个在左侧,一个在右侧。这是一般的想法。现在,Master / Detail Flow可以在Activity内部使用(就像Eclipse对你所描述的模板一样)或者在Fragment中使用,幸运的是,因为Android 4.2在其他Fragments中引入了Fragments(旧版本的Android兼容性库也支持这一点) Android)。
Eclipse生成的模板包含在Activity(在平板电脑上)或2个Activity(用于手机)中,因为Eclipse不知道你需要片段内的主/细节。所以,你不能依赖Eclipse的模板。但是将2个片段放入另一个片段并不难。
你只需要忘记ViewPager一段时间,然后在包含Master / Detail Flow的Fragment中做你的工作,我们称之为MasterFragment。
为MasterFragment声明2个XML布局文件:
<fragment>
标记<fragment>
标记。现在,我不会在这里详细介绍您的所有Java代码,但在MasterFragment.java中,您需要检查设备是否是平板电脑,以便您知道屏幕上哪两个片段处于活动状态。
如果是手机,则只能看到InnerListFragment。所以只需添加列表,onClickListener将启动InnerDetailActivity,您需要在其中放置InnerDetailFragment。
如果它是平板电脑,则两个内部碎片都可见。单击列表项时不要启动新活动,只需在MasterFragment中引用这两个片段,即可在它们之间进行通信。
这是一般的想法。如果您仍有疑问,请询问。