Android開発メモ(SmartNews風のタブを作る)

pc

SmartNews風のタブを作る

これはみなさんやりたいみたいですね。

あのタブを作るにはまず角丸なボタン?を作らなければいけません。

そのために

こんな感じで作ってあげれば角丸が出来ます。

ただ、SmartNewsって色が一つ毎に違いますよね。

そうなると固定レイアウトでは。。

もちろん数の分だけdrawableを用意してもいいのですが

それではスマートじゃないです。

配列で使う色を用意しておいて

こんな感じにGradientDrawableでバックグラウンドにセットしてあげればいい感じにできます!

後は、複雑すぎていつもわからなくなってしまうタブレイアウトです。

これは是非ともメモしておきたいと思いました。

レイアウトとしてはこれだけです。

今はTabHostという便利なものがあるのですね。。

後はこんな感じにviewpagerにセットしてあげるだけです。

また、この後タブを生成するのでループ処理をかけて

その中で先ほどのタブの表示部分の処理などを行います。

 

個人的に一番つまったのがPagerAdapterの部分です。

うまく自分の居場所がわからない。。

「ViewPager.OnPageChangeListener」をimplementしたリスナーを用意して

こいつで判断するのが一番わかりやすかったです。

タブの状態に関して非常にわかりやすく書いていた方がいたのでメモです。

onPageScrollStateChanged() では、スクロールの状態を取得することができます。

  • SCROLL_STATE_IDLE(0)
  • SCROLL_STATE_DRAGGING(1)
  • SCROLL_STATE_SETTLING(2)

実際に動かしてみると、引数のstateはそれぞれ以下のタイミングで値が取得できました。

  • ViewPagerの位置が落ち着いた状態が0
  • ViewPagerがドラッグされていると1
  • ViewPagerが最終的な位置に落ち着く前が2

これを参考に必要なタイミングで処理できればばっちりですね。

コメント

Top
タイトルとURLをコピーしました