Androidでタブ画面の作成
画面でタブ画面を作成すると用途ごとの切り替えができてみやすくなる
クックパッドとか
楽天証券のiSpeedなどがタブ画面をつかっている
画面でタブを使うには
TabWidgetクラス
FragmentTabHostクラス
を使う
まずは、レイアウトファイル作成
<android.support.v4.app.FragmentTabHost xmlns:android="http://scheams.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:orientation="horizontal"/> <FrameLayout android:id="@+id/realtabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout> </android.support.v4.app.FragmentTabHost>
次に、Javaで
TabWidgetクラス
FragmentTabHostクラスを使い、
画面でタブを使うように
onCreate()へ追記する
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); mTabhost.setUp(this, getSupportFragmentManager(), R.id.realtabcontent); for(String tag:tags){ Bundle bundle = new Bundle(); bundle.putString("value",tag); mTabhost.addTab(mTabhost.newTabSpec(tag).setIndicator(tag), TabFragment.class, bundle); }
これで、タブ追加できる
FragmentTabhostクラスは、
setup()で初期化後、Fragmentをタブコンテンツへ追加できる
そして、setIndicator()でタブのテキストを指定する