RecyclerViewでのgetFirstVisiblePositionについて

RecyclerViewではLayoutManagerからgetFirstVisiblePosition()のようなことができる しかし、LinearLayoutManagerなどにキャストするか、自分で実装とかしないと、無理。 なので、こうする
int position;
RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
if (manager instanceof LinearLayoutManager) {
    position = ((LinearLayoutManager)manager).findFirstVisibleItemPosition();
}else {
    position = 0;
}
java.lang.Object
↳android.support.v7.widget.RecyclerView.LayoutManager
 ↳android.support.v7.widget.LinearLayoutManager
  ↳android.support.v7.widget.GridLayoutManager
という継承関係なのでGridLayoutManagerを使っていてもこれでいい

コメント

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