新活动开始时显示标签栏

时间:2011-04-21 06:49:40

标签: android android-activity tabbar

我写了一个带有2个标签的简单Android程序。标签1有一个按钮,可以打开一个新窗口。但我意识到,在打开这个新窗口时,Android标签栏将被隐藏。

我想在新活动开始时显示Android标签栏,即显示所有活动的标签栏

2 个答案:

答案 0 :(得分:0)

使用此功能启动新活动

View view = getLocalActivityManager().startActivity("tab1", new Intent(this,tab1.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();

setContentView(view);

答案 1 :(得分:0)

基本上,您需要创建framelayout,它将托管您的新活动。

这是tabs.xml

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent">
   <ScrollView
      android:id="@+id/ScrollView01"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:scrollbars="vertical"
      android:background="@drawable/bbg">
      <LinearLayout
         android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
         <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#000000"/>
         <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
      </LinearLayout>
   </ScrollView>
</TabHost>

这是TabsActivity:

   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.tabs);

      Resources res = getResources(); 
      TabHost tabHost = getTabHost();  
      TabHost.TabSpec spec;  
      Intent intent;  
      intent = new Intent().setClass(this, RegistrationActivity.class);
      spec = tabHost.newTabSpec("registration").setIndicator("Регистрация",
                        res.getDrawable(R.drawable.ic_tab_registration))
                        .setContent(intent);
      tabHost.addTab(spec);
      intent = new Intent().setClass(this, LoginActivity.class);
      spec = tabHost.newTabSpec("login").setIndicator("Логин",
            res.getDrawable(R.drawable.ic_tab_login))
        .setContent(intent);
      tabHost.addTab(spec);
      tabHost.setCurrentTab(0);


   }

此示例将创建2个选项卡和2个活动。点击任何水龙头即可开始活动。标签将始终位于屏幕顶部。

UPD。

ActivityGroups可能对您有所帮助 http://blog.henriklarsentoft.com/2010/07/android-tabactivity-nested-activities/