Ale*_*cha 12 layout android master-detail android-tabs
我想为我的android-application(平板电脑的上部布局,智能手机的较低布局)实现以下布局,包括在子项目之间滑动的功能:
所以我用Eclipse创建了一个Master/Detail-Flow活动,它运行正常.对于标签我已经看了一下Support-Library Samples(<sdk>/extras/android/support/v4/samples/
),其中给出了一个漂亮的例子(FragmentTabsPager.java),它扩展了FragmentActivity
类并使用ViewPager
了TabHost
-Widget.
我的想法是将两个示例组合到一个应用程序中,因此我不想将TabPage用作Activity,而是将其用作Fragment.在智能手机上这很好用,但在平板电脑上它只能工作一次(这意味着第一次启动时,内容正确加载,但是当我点击左侧列表中的另一个项目时,不再加载内容).更确切地说:选项卡已加载并具有正确的标签,但应该显示在选项卡的内容区域中的内容不在那里,尽管您可以在选项卡之间滑动,就像内容在那里一样.
我的问题是:
为了更容易看到,我从头开始创建了一个完全符合这个想法的演示应用程序,可以从https://github.com/apacha/MasterDetail_And_Tabs下载.
Stackoverflow上没有解决问题的相关帖子:ViewPager PagerAdapter没有更新View,
编辑1:我已经了解了http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html并发现了Android FragmentTabHost - 尚未完全出炉?.有了这些提示,我设法让它几乎运行,但现在我可以选择一个不提供滑动支持的工作版本(如果我将Tabs直接添加到tabHost:
FragmentTabHost mTabHost = new FragmentTabHost();
// Add directly to tab-host
mTabHost.addTab(mTabHost.newTabSpec("simple1").setIndicator("Simple1"), CountingFragment.class, b);
Run Code Online (Sandbox Code Playgroud)
如果我添加它并使用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);
Run Code Online (Sandbox Code Playgroud)
我已经将所有更改提交到上面提到的存储库.
我在这里实现了简单的主从设计https://github.com/ycagri/MasterSlave。
我把它保存在公共仓库中。如果您想尝试并添加更多功能,请随意 fork。可以为方向改变实现savedInstanceState。
基本上,项目有两个布局,分别是布局文件夹内的 MainActivity 和布局-sw600dp-land 文件夹。在平板电脑景观中,片段在布局内定义。否则,使用片段管理器添加片段。如果您可以从布局中找到从属片段,则您正在使用具有横向模式的平板电脑。
希望这可以帮助...
归档时间: |
|
查看次数: |
4622 次 |
最近记录: |