6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Androidのタブの実装方法

Posted at

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

#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つまでだったり、タブ上にアイコンを表示させる場合に一工夫が必要だったり、少し凝ったことをするとコーディング量が増えます。

6
11
0

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
  3. You can use dark theme
What you can do with signing up
6
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?