閉じる

android.support.v7.widget.RecyclerView

ListViewの後継なんだとか。
一番大きな変更は Layoutに関する処理を LayoutManagerとして切り出したことだと思う。
スクロール系等 LayoutManagerに丸投げだし。
ListView#getFirstVisiblePosition/setSelectionに相当するメソッドを探して、RecyclerView#scrollToPositionはすぐにわかったけど、LinearLayoutManager#findFirstVisibleItemPositionが悩んだ。
で、調べていく過程で GridLayoutManagerというのが出てきて、ListView/GridViewの論理的な動きを RecyclerViewが担当し、実際の表示周りを LayoutManagerにて実装という構造に思い至った。*1
綺麗な構造にはなったけど、既存のコードを移植しようとするとそれなりに手間がかかる。
そして、GridLayoutManagerに関する日本語の情報がほとんど…というか、全く存在しない…
まぁ ざっとドキュメントを眺めたところ LinearLayoutManagerを継承して Grid特有のメソッドが多少増えている程度のようなので何とかなるか。

2014/11/09追記

実装してみるとわかるけど、adapterを入れ替えた際にパッと切り替わるのではなく移動/削除/割り込みに関して既に表示されているビューを使ってアニメーションしてくれるのはなかなかおしゃれな感じ。

未だにわからないのは ListViewにあった FastScrollだなぁ
存在しないのかしら?


*1 自作のフレームワークでは ListView/GridViewどちらを使うかでほとんど同じ構造のコードを別々に書かざるをえなかったしね。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)