Tabコントロールの使い方

Tabコントロールを使う場合、決まりごとがあります。

res/layoutに作成するXML内の決まり

レイアウトのxmlの内容は以下のような構成になります。

#codeprettify{{

?xml version="1.0" encoding="utf-8"?>

TabHost xmlns:android="http://schemas.android.com/apk/res/android"

   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:id="@android:id/tabhost"
   >
       <!-- Tab -->
       <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content"></TabWidget>
       <!-- Tabの内容 -->
       <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@android:id/tabcontent">
       </FrameLayout>

/TabHost> }}

タグ説明
TabHostandroid:idは必ず@android:id/tabhostにしなければならない。
TabWidgetandroid:idは必ず@android:id/tabsにしなければならない。
FrameLayoutandroid:idは必ず@android:id/tabcontentにしなければならない。

決まり事といっても、上記の表の物だけです。

決まり事

TabWidgetのidandroid:id="@android:id/tabs"
FrameLayoutのidandroid:id="@android:id/tabcontent"

ActivityはTabActivityを使う

Tabコントロールを使う場合は、TabActivityを使います。
TabActivityには、Tabコントロールを使うためのメソッドが用意されているためです。

タブを作成する例

#codeprettify{{ public class TabSampleActivity extends TabActivity{

 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   TabHost host = getTabHost();
   TabSpec spec = null;
   spec = host.newTabSpec("Tab1");
   spec.setIndicator("Tab1", getResources().getDrawableandroid.R.drawable.ic_menu_view));
   spec.setContent(new Intent(this, SampleTabView.class));
   host.addTab(spec);
 }

} }} まず、getTabHost()でタブを管理するTabHostクラスのインスタンスを取得します。
その後、TabHostインスタンスを使って、TabSpecインスタンスを生成します。
TabSpecは1つのタブの内容を管理するクラスです。
このクラスに、いろいろな設定を行い、TabHost#addTab()メソッドで、TabSpecインスタンスをTabHostに追加します。

補足

XMLでViewを指定する場合、includeタグで指定することも可能です。 (まぁ、結果的にViewを指定することになるんだけど)


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-21 (金) 15:39:44