如何在Android上与选项卡一起使用主/明细流

如何在Android上与选项卡一起使用主/明细流,android,layout,master-detail,android-tabs,Android,Layout,Master Detail,Android Tabs,我想为我的android应用程序实现以下布局(平板电脑的上部布局,智能手机的下部布局),包括在子项之间滑动的功能: 因此,我用Eclipse创建了一个主/细节流活动,效果很好。对于选项卡,我查看了支持库示例(/extras/android/Support/v4/Samples/),其中给出了一个漂亮的示例(FragmentTabsPager.java),它扩展了FragmentActivity类,并使用了ViewPager和TabHost-小部件 我的想法是将两个示例合并到一个应用程序中,因此

我想为我的android应用程序实现以下布局(平板电脑的上部布局,智能手机的下部布局),包括在子项之间滑动的功能:

因此,我用Eclipse创建了一个主/细节流活动,效果很好。对于选项卡,我查看了支持库示例(
/extras/android/Support/v4/Samples/
),其中给出了一个漂亮的示例(FragmentTabsPager.java),它扩展了
FragmentActivity
类,并使用了
ViewPager
TabHost
-小部件

我的想法是将两个示例合并到一个应用程序中,因此我不想将TabPage用作活动,而是将其用作片段。在智能手机上,这很好,但在平板电脑上,它只能工作一次(这意味着当第一次启动时,内容被正确加载,但只要我单击左侧列表中的另一项,就不会再加载内容)。更准确地说:选项卡已加载并具有正确的标签,但应显示在选项卡内容区域中的内容不存在,尽管您可以在选项卡之间滑动,就好像内容存在一样

我的问题是:

  • 这种方法有意义吗(将主/详细信息与选项卡结合起来)?或者我应该使用完全不同的方法
  • 您知道如何解决内容加载不正确的问题吗
为了便于查看,我用这个想法从头开始创建了一个演示应用程序,可以从下载

Stackoverflow上未解决问题的相关帖子:

Edit1:我已经了解并发现了。有了这些提示,我几乎可以让它运行了,但现在我可以选择一个不提供刷卡支持的工作版本(如果我直接将选项卡添加到tabHost:

FragmentTabHost mTabHost = new FragmentTabHost();
// Add directly to tab-host
mTabHost.addTab(mTabHost.newTabSpec("simple1").setIndicator("Simple1"), CountingFragment.class, b);
如果我添加它并使用FragmentPagerAdapter,则会出现错误滑动实现

FragmentTabHost mTabHost = new FragmentTabHost();
ViewPager mViewPager = (ViewPager) rootView.findViewById(R.id.pager);
TabsAdapter mTabsAdapter = new TabsAdapter(getActivity(), mTabHost, mViewPager);
// Add to tab-host-adapter
mTabsAdapter.addTab(mTabHost.newTabSpec("simple1").setIndicator("Simple1"), CountingFragment.class, b);

我已经提交了上述存储库的所有更改。

我在这里实现了简单的主从设计

我把它保存在一个公共的repo中。如果你想使用和添加更多的功能,请随意使用fork。savedInstanceState可以用于方向更改

基本上,project有两个布局,分别用于布局内的MainActivity和布局-sw600dp-land文件夹。在平板电脑横向布局中,在布局内定义碎片。否则,使用碎片管理器添加碎片。如果可以从布局中找到从属碎片,则使用横向模式的平板电脑


希望这有帮助……

您解决了这个问题吗?我希望采用与您提到的结构完全相同的结构,并考虑采用类似的方法。不幸的是,没有。但是如果您能够启动并运行它,如果您可以将解决方案添加到上面的存储库中,以供将来遇到相同问题的访问者使用,那就太好了(创建拉取请求)。