是否可以使用FragmentTabHost手动创建片段?

时间:2014-02-19 23:00:49

标签: android android-fragments android-tabs

FragmentTabHost在其通常的配置中足够有礼貌,可以为我们处理片段的实例化,这意味着我们只需要传入类中,然后完成其余的工作:

mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("friends").setIndicator("Friends"), FriendsFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), ContactsFragment.class, null);

正如您所看到的,我们只需要传递Fragment类(例如FriendsFragment.class)和要传递的args包(在本例中为null)和{{ 1}}将为我们处理片段的初始化。它似乎也很懒散,只会在实际更改选项卡时加载片段。

在很多情况下这很棒,但我想要做的是手动预先创建我的片段,然后将它们附加到FragmentTabHost。这样做的主要优点是我可以确保所有标签片段始终存在,而不是在用户更改标签时懒惰地创建。

理想情况下,我想拥有的是这样的东西(如果只有方法存在!):

FragmentTabHost

所以问题是:是否可以使用FriendsFragment f1 = new FriendsFragment(); ContactsFragment f2 = new ContactsFragment(); mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); mTabHost.addTab(mTabHost.newTabSpec("friends").setIndicator("Friends"), f1); mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), f2); 手动预创建片段,还是有必要完全采用不同的方法?

0 个答案:

没有答案