Показывать панель вкладок при начале новой активности - PullRequest
1 голос
/ 21 апреля 2011

Я написал простую программу для Android с 2 вкладками. На вкладке 1 есть кнопка, которая откроет новое окно. Но я понял, что при открытии этого нового окна панель вкладок Android будет скрыта.

Я хотел бы всегда показывать панель вкладок Android, когда начинается новое действие, т.е. показывать панель вкладок для всех действий

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

В основном вам нужно создать framelayout, в котором будут размещаться ваши новые действия.

Вот вкладки. 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/

0 голосов
/ 21 апреля 2011

Используйте это, чтобы начать новое занятие

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

setContentView(view);
...