选项卡式android应用程序基本结构
我正在将我的应用程序从iOS移植到Android,我想让它具有与iOS tabbar相同的选项卡式布局 我发现目前最好的方法是为每个“选项卡”设置一个带有片段的操作栏。这是可行的,但我不明白如何在每个选项卡内导航。例如:一个选项卡片段是一个listfragment,当我点击一个列表条目时,我想推送一个新的(片段或活动?.suggestions),显示该条目的详细信息 在我用于select事件的listfragment中:选项卡式android应用程序基本结构,android,android-listfragment,android-fragmentactivity,Android,Android Listfragment,Android Fragmentactivity,我正在将我的应用程序从iOS移植到Android,我想让它具有与iOS tabbar相同的选项卡式布局 我发现目前最好的方法是为每个“选项卡”设置一个带有片段的操作栏。这是可行的,但我不明白如何在每个选项卡内导航。例如:一个选项卡片段是一个listfragment,当我点击一个列表条目时,我想推送一个新的(片段或活动?.suggestions),显示该条目的详细信息 在我用于select事件的listfragment中: getFragmentManager() .begin
getFragmentManager()
.beginTransaction()
.replace(what_goes_here?, detailsfrag)
.commit();
我尝试过的任何方法都只是在listfragment上方添加detailsfrag
这是正确的布局吗?(3个标签,每个标签一个碎片,每个标签一个推动碎片)
附加问题:碎片和碎片活动之间的区别
非常感谢。你走对了方向。
.replace()
函数用于处理片段-应该由另一个片段替换的片段。第一个由其容器id标识的容器-例如R.id.fragmentContainer
。第二个由引用标识。Link我最终打算启动一个新的FragmentActivity,但它隐藏了actionmenu选项卡。但这是考虑android最佳实践的方式。事实上,我想要显示的片段实际上应该是一个符合android操作方式的活动。
twitter的应用程序也是这样工作的,所以我认为这是正确的方法。首先有一个额外的问题:FragmentActivity是活动的一个子类,应该包含片段。它提供一些常用功能,例如碎片管理器。您可以使用它,但不必使用。但是我看到第一个参数是容器,而不是要替换的片段……事实上,我尝试了您的建议,使用了这个。getid(),但它不起作用。您是对的,我更正了我的答案。另一个提示:只能替换动态添加的片段。xml布局文件中定义的片段无法替换。是的,它们是动态添加的,这就是为什么我无法理解listfragment的容器。因为如果我使用android.R.id.content,它会替换所有内容(以及其他选项卡)。我使用了eclipse提供的默认导航模板以及选项卡和寻呼机导航(FragmentPagerAdapter子类化,它返回所选选项卡的正确片段)Ok。越来越近了。你需要某种容器。一个寻呼机怎么样。它通常与ActionBar选项卡结合使用,并允许滑动。它在那里,但如果我在替换调用(R.id.pager)中使用它,而不是加载新片段,我会得到一个空页面,如果我在选项卡之间进行两次滑动,我会得到Coreographer运行时异常