RecyclerViewとLayoutManagerの話

RecyclerView

  • 2種類のキャッシュであるScrapHeapとViewPoolを持っている
  • スクロールしてViewが見えなくなるとremoveAndRecycleView()が呼ばれて
  • 見えなくなったViewはdetachAndScrapView()/removeAndRecycleView()に行く

LayoutManager

  • Viewの配置、生成、破棄、再利用

カスタムLayoutManager

  • onLayoutChildren(レイアウトの初期化、Adapterの更新で呼ばれる)
  • onInterceptFocusSearch(フォーカス移動をしようとすると呼ばれる。戻り値でフォーカスすべきViewを返却する)
  • scrollHorizontallyBy()
  • scrollVerticallyBy()
  • LayoutState.mAvailableはFillの状態(見えている画面全体?)のピクセル量
  • LayoutState.mDirectionはSTART | END