ViewPagerにIndicatorをつける
Motivation
Indicatorつけたいやん!!と思い立ち、これでイケる!
と思った後に「あ、ライブラリありそう」とググったら見つけて
「あっ。。。」ってなりました。
実装は参考程度に、下記ライブラリを使うのが良いのではないでしょうか。
indicatorの用意
まずはじめに、indicatorの絵を準備する。
円とか棒とか四角とかであれば、shapeタグを使って作ってしまうのが楽そう。
今回は円を選択中のもの(ちょい大きい)と非選択中のものを用意した。
特にこれといった解説は必要ないように思う。
indicatorの入れ物を作る
indicator自体は先に作ったものをImageView経由で描画する。
横に並べて表示することになるので、LinearLayoutをXMLに用意しておき、表示の数に合わせてソース上からAddすることにする。
サンプルコードのベースは新規プロジェクト作成時にTabbed Activityを選択し、ViewPager部分の実装はおサボりしている。
まず、LinearLayoutの挿入箇所。
RootのCoordinatorLayoutの中に実装する。
ViewPagerの中に入れてしまうと面倒すぎるので、外側に持つように。
onPageChangeListenerを拾って画像を差し替える
後は、ViewPager.OnPagechangeListenerを拾って画像を入れ替えるだけ。
Indicatorの作成と入れ替え処理をまとめたManagerクラスを作った。
内部では、コンストラクタでのImageViewの生成とLinearLayoutへの追加、
onPageSelectedの呼び出し時に選択/非選択のViewの差し替えを行っている。
このManagerをViewPagerにセットすればOK.
サンプルコード
あ−。先にライブラリ見つけてれば。
後で実装の違いを確認しておこう。