ViewPager中的Android Master/Detail流程

Ger*_*lai 5 android fragment master-detail android-viewpager android-activity

我遇到了一个我无法解决的问题,我google了很多但找不到解决方案.

在我的应用程序中,我有一个包含3页的ViewPager.这些页面应该是碎片.这没关系.但是,其中两个页面必须是主/详细信息流(一个用于朋友列表,一个用于新闻提要).当我使用eclipse 2片段创建主/细节流时,会创建2个活动.ItemListActivity(需要显示的那个)实现片段的Callbacks,这是一个Activity,但ViewPager只接受片段内部的片段.

所以问题是:如何将主/细节流放在ViewPager中?

非常感谢所有帮助!我在这里完全没有想法.

谢谢

Bog*_*rac 11

主/细节流只是在同一内容视图中使用的2个片段的昵称,一个在左侧,一个在右侧.这是一般的想法.现在,Master/Detail Flow可以在一个Activity中使用(就像Eclipse对你所描述的模板一样)或者在Fragment中使用,幸运的是,因为Android 4.2在其他Fragments中引入了Fragments(旧版本的Android兼容性库也支持这一点) Android).

Eclipse生成的模板包含在Activity(在平板电脑上)或2个Activity(用于手机)中,因为Eclipse不知道您需要片段内的主/详细信息.所以,你不能依赖Eclipse的模板.但是将2个片段放入另一个片段并不难.

您只需要忘记ViewPager一段时间,然后在包含主/细节流的Fragment中进行工作,我们称之为MasterFragment.

  1. 再声明2个片段:InnerListFragment,InnerDetailFragment.也是一款适用于手机的InnerDetailActivity.
  2. 为MasterFragment声明2个XML布局文件:

    • layout/fragment_master.xml - 在其中仅添加InnerListFragment <fragment>标记
    • layout-sw600dp/fragment_master.xml(对于平板电脑> 7") - 添加InnerListFragment和InnerDetailFragment <fragment>标记.
  3. 现在,我不会在这里详细介绍您的所有Java代码,但在MasterFragment.java中,您需要检查设备是否是平板电脑,以便您知道屏幕上哪两个片段处于活动状态.

    • 如果是手机,则只能看到InnerListFragment.所以只需添加列表,onClickListener将启动InnerDetailActivity,您需要在其中放置InnerDetailFragment.

    • 如果它是平板电脑,那么两个内部碎片都是可见的.单击列表项时不要启动新活动,只需在MasterFragment中引用两个片段,以便在它们之间进行通信.

这是一般的想法.如果您仍有疑问,请询问.