LoginSignup
11

More than 5 years have passed since last update.

Organization

Androidのタブの実装方法

タブの実装方法は複数あり、各々がどういう位置づけかよくわからなかったのでまとめました。
コードは載せていなので、各自調べていただければと思います。
※第三者が提供しているライブラリは除きます。

ActionBar

この方法API21の時に非推奨とされていますので、これから開発する方は使わないようにしましょう。
ただ、スワイプ+タブの実装方法のベストプラクティスとして、ActionBarを使った方法が紹介されているんですよね。。。

TabLayout

Android 5.0の時にマテリアルデザインが発表されましたが、その際にマテリアルデザインに則った開発ができるようGoogleからデザインサポートライブラリというものが提供されました。デザインサポートライブラリはAndroid 2.1以上をカバーできます。
TabLayoutはデザインサポートライブラリに含まれているものであり、マテリアルデザインに則った開発をするならばTabLayoutを使うべきです。

ActivityTab

現在は非推奨となっているので、ActivityTabを使うならば後継のFragmentTabHostを使いましょう。

FragmentTabHost

タブをフラグメントとして扱います。よって、例えばタブ上にアイコンを表示させたいときは、アイコンを表示するViewを作成し、それをFragmentTab上にセットします。
前述のTabLayoutと比較して、FargmentTabHostはタブというよりはフラグメントを扱っている感じです。(その分FragmentTabHostは柔軟なタブ表示ができます。)
どのようなタブデザインにするのかによってはFragmentTabHostを選択するのもありだと思いますが、マテリアルデザインに則ったデザインを行う場合は、マテリアルデザイン用に作られたTabLayoutを使った方がよいのではないかと考えられます。

PagerTabStrip

ViewPagerとセットで使う必要があります。
一番簡単に「タブ(文字表示のみ)+スワイプ」を持った画面の開発ができます。
ただ、同時に表示できるタブの個数が3つまでだったり、タブ上にアイコンを表示させる場合に一工夫が必要だったり、少し凝ったことをするとコーディング量が増えます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11