我希望我的Android应用程序能够实现以下布局(平板电脑的上部布局,智能手机的下部布局),包括在子项之间滑动的功能:
所以,我使用Eclipse创建了一个Master/Detail-Flow Activity,工作得很好。对于选项卡,我查看了Support-Library Samples(
我的想法是将两个示例合并成一个应用程序,所以我不想使用TabPage作为Activity,而是要将其作为Fragment。在智能手机上,这很好用,但在平板电脑上仅起作用一次(意思是第一次启动时,内容会正确加载,但是只要我在左侧列表中点击另一个项目,就不会再加载任何内容)。更准确地说:选项卡已加载并具有正确的标签,但应显示在选项卡内容区域中的内容不在那里,尽管您可以在选项卡之间滑动,就像内容存在一样。
我的问题是:
如果我添加并使用FragmentPagerAdapter,可能会出现一个有缺陷的滑动实现。
![Application Layout on Tablet (upper) and on Smartphone (lower)](https://istack.dev59.com/fZBVp.webp)
<sdk>/extras/android/support/v4/samples/
),其中提供了一个漂亮的示例(FragmentTabsPager.java),它扩展了FragmentActivity
类,并使用了ViewPager
和TabHost
-Widget。我的想法是将两个示例合并成一个应用程序,所以我不想使用TabPage作为Activity,而是要将其作为Fragment。在智能手机上,这很好用,但在平板电脑上仅起作用一次(意思是第一次启动时,内容会正确加载,但是只要我在左侧列表中点击另一个项目,就不会再加载任何内容)。更准确地说:选项卡已加载并具有正确的标签,但应显示在选项卡内容区域中的内容不在那里,尽管您可以在选项卡之间滑动,就像内容存在一样。
我的问题是:
- 这种方法是否有意义(将主/详细信息与选项卡组合起来)?还是我应该使用完全不同的方法?
- 您知道如何解决内容未正确加载的问题吗?
与问题无关的Stackoverflow相关帖子:ViewPager PagerAdapter未更新View,
编辑1:我了解到http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html并发现Android FragmentTabHost - Not fully baked yet?。有了这些提示,我几乎可以运行它了,但现在我可以选择一个工作版本,该版本不提供滑动支持(如果我直接将选项卡添加到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);
我已经将所有更改提交到上述存储库中。