0

我有一个带有两个选项卡的屏幕,对于每个选项卡,我都在尝试以不同的布局运行不同的片段。

我目前有以下内容:

  • MainFragmentActivity - 扩展 FragmentActivity 的活动
  • mainFragment_screen - MaiFragmentActivity 的 XML
  • Fragment1 - 用户点击 Tab1 时的活动
  • fragmnet1_screen - 用于那个的 XML
  • Fragment2 - 用户点击 Tab2 时的活动
  • fragment2_screen - 用于那个的 XML

一切正常,但问题是当应用程序在带有选项卡 Tab1 和 Tab2 的空屏幕中启动时。例如,某些活动的片段仅在用户单击 Tab2 时出现。当他再次点击 Tab1 时,Tab1 的片段会正常显示。

我希望 Tab1 的那个片段在应用程序启动时立即启动,但我不知道如何实现。

有任何想法吗?:D

4

2 回答 2

2

这听起来像片段交易问题。但我需要查看 MainActivity 的代码。

我假设您正在使用 FragmentTransactions.add 和 FragmentTransaction.replace 将它们移入和移出。

于 2012-11-24T16:48:16.657 回答
0

解决方案是添加所有选项卡后,这需要在 onCreate() 中完成:

TabInfo activeTab = (TabInfo) this.hashMapTab.get("Tab1");
    FragmentTransaction ft = this.getSupportFragmentManager().beginTransaction();
    activeTab.fragment = Fragment.instantiate(this,activeTab.className.getName(), activeTab.args);
    ft.add(R.id.tab1, activeTab.fragment, activeTab.tag);
    ft.attach(activeTab.fragment);
    lastTab = activeTab;
    ft.commit();

hashMapTab 是所有选项卡的 TabInfo 的哈希映射。TabInfo 是所有 Tab 数据的容器,例如选项卡的类名和标签。

于 2012-11-26T08:09:25.517 回答