Android:アクションバーの上の位置にタブを表示させる
Androidでアクションバーをいろいろいじっていたら面白い現象に遭遇した。
アクションバーの上にアクションバーのタブが表示されている。
普通はこう。
...まあできたからどうだって、わけでもないんだけれども。
中には「俺は画面の一番上にタブを出したい…そのためなら警察に捕まってもいい」って人もいると思うので、いないと思うけどコードは紹介する。
実装に必要なコードは下記のとおり。
・確認端末:HTC-J (Android4.0.3)
アクションバーを実装するActivityのonCreateで
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = this.getActionBar(); // アクションバーのタブを設定 Tab newTab1 = actionBar.newTab(); newTab1.setTag("tab1"); newTab1.setText("タブ1"); newTab1.setTabListener(this); actionBar.addTab(newTab1); Tab newTab2 = actionBar.newTab(); newTab2.setTag("tab2"); newTab2.setText("tabu 2"); newTab2.setTabListener(this); actionBar.addTab(newTab2); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // アクションバーの独自ビューを設定 actionBar.setCustomView(R.layout.actionbar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); }
つまり、
・アクションバーのタブ機能
・独自ビュー設定
これらを同時に行うと、アクションバーの上にタブが表示される。
ちなみにサポートパッケージでもできた。(IS03)