如何使用标签在Android屏幕内运行片段?

时间:2012-11-24 15:46:49

标签: android android-layout tabs android-fragments android-activity

我有一个带有两个标签的屏幕,对于每个标签,我尝试使用不同的布局运行不同的片段。

我目前有以下内容:

  • MainFragmentActivity - 活动,扩展了FragmentActivity
  • mainFraggment_screen - MaiFragmentActivity的XML
  • Fragment1 - 用户点击Tab1时的活动
  • fragmnet1_screen - 用于此的XML
  • Fragment2 - 用户点击Tab2时的活动
  • fragment2_screen - 用于此的XML

一切正常,但问题是当应用程序启动时只有一个空白屏幕,标签为Tab1和Tab2。例如,当用户单击Tab2时,仅显示某些活动的片段。当他点击Tab1时,Tab1的片段正常显示。

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

有什么想法吗? :d

2 个答案:

答案 0 :(得分:2)

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

我假设您正在使用FragmentTransactions.add和FragmentTransaction.replace来移动它们。

答案 1 :(得分: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数据的容器,如类名和标签的标签。