2013-04-04 43 views
0

我将我的应用程序从iOS移植到Android,我想给它与iOS tabbar发生的相同的选项卡式布局。选项卡式Android应用程序基本结构

我发现目前最好的方法是为每个“标签”选择一个带有片段的操作栏。这是工作,但我不明白如何浏览每个标签。例如:一个标签片段是一个listfragment,当我点击一个列表条目时,我想推送一个新的(片段或活动?..建议),显示有关该条目的详细信息。

我使用select事件listfragment内部:

getFragmentManager() 
     .beginTransaction() 
     .replace(what_goes_here?, detailsfrag) 
     .commit(); 

什么我已经试过,只是增加了listfragment以上detailsfrag。

这是正确的布局吗? (3个标签,每个片段,每个推片段) 奖金问题:片段和片段活动之间的区别?

非常感谢。

+0

奖金问题第一:FragmentActivity是Activity应该包含Fragments的子类。它提供了一些常用的功能,一个FragmentManager。你可以使用它,但不必。 – David 2013-04-04 00:30:48

回答

0

我结束了使用意图启动一个新的FragmentActivity,但隐藏actionmenu选项卡。但这是它应该考虑Android最佳实践的方式。事实上,我想要显示的片段实际上应该是根据android的做事方式进行的活动。 也是twitter的应用程序这样工作,所以我认为这是正确的方法。

1

你是正确的路线。 .replace()函数用于分割 - 应该由另一个替换的分割。第一个由其容器标识符标识 - 例如R.id.fragmentContainer。第二个由参考标识。链接API

+0

但我看到第一个参数是容器,而不是要被替换的片段...作为事实问题,我尝试了使用this.getid()的建议,但它不起作用 – Peterdeka 2013-04-04 00:56:28

+0

你说得对,我纠正了我的答案。另一个提示:只能动态添加的片段可以被替换。在xml布局文件中定义的碎片不能被替换。 – David 2013-04-04 01:06:30

+0

是的,他们是动态添加的,这就是为什么我不明白哪个是我的listfragment容器。因为如果我使用android.R.id.content它会取代一切(也是其他选项卡)。我使用了eclipse提供的默认导航模板,并带有制表符和页面导航(FragmentPagerAdapter子类化,它为选定的选项卡返回正确的片段) – Peterdeka 2013-04-04 01:26:49