2018年05月06日
TabHostの備忘録
・android.widget.FrameLayout配下のリスナー
- タブの名前を設定する。
- タブの表示名を設定する。
- タブで表示するレイアウトを指定する。
- タブを追加する。
- 初期表示のタブを設定する。
-
no image
-
no image
タブを表示させる。
xmlでの記載方法。
<TabHost
android:id="@+id/tabHost1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
[ここに追加する]
</TabHost>
ここで、幅は親フォームに合わせている。
"[ここに追加する]"の項目は以下のような内容を記載する。
まず、タブを利用するための情報を記載する。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/linearLayout1">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
[ここに追加する2]
</LinearLayout>
"[ここに追加する2]"の項目は以下のように記載する。
ここでタブの各ページを追加する。
タブの各ページはLinearLayoutを利用している。
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="25px"
android:minHeight="25px">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout_tab1">
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout_tab2">
</LinearLayout>
<FrameLayout>
レイアウトだけでは、タブの表示がうまくいかないため、
動作を定義する必要がある。
タブの設定方法。
OnCreate(Bundle savedInstanceState)中にタブの表示方法を定義する。
TabHost tabHost = FindViewById
tabHost.Setup();
TabHost.TabSpec tabSpec1 = tabHost.NewTabSpec("tab1"); //─1
tabSpec1.SetIndicator("タブ1"); //─2
tabSpec1.SetContent(Resource.Id.linearLayout_tab1); //─3
TabHost.TabSpec tabSpec2 = tabHost.NewTabSpec("tab2");
tabSpec2.SetIndicator("タブ2");
tabSpec2.SetContent(Resource.Id.linearLayout_tab2);
tabHost.AddTab(tabSpec1); //─4
tabHost.AddTab(tabSpec2);
tabHost.SetCurrentTabByTag("tab1"); //─5
各処理の説明を記載する。
(Google Developersはこちら)
---
【更新履歴】
180505:初期作成
この記事へのトラックバックURL
https://fanblogs.jp/tb/7625480
※ブログオーナーが承認したトラックバックのみ表示されます。