Slide 11
Slide 11 text
レシピ名
viewPager.adapter =
object : FragmentStateAdapter(supportFragmentManager) {
override fun getItem(position: Int) =
PageFragment.newInstance("page$position")
override fun getItemCount() = 5
}
…
class PageFragment : Fragment() {
…
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?) =
DataBindingUtil.inflate(inflater,
R.layout.pager_item_text, container, false).apply {
text = arguments?.getString(ARG_TEXT)
}.root
}
}
FragmentStateAdapterを使用する例
● Fragmentを使用してページを作成する場合は
FragmentStateAdapterを使用する
● 現時点ではOffscreenPageLimitの仕組みが
存在しないため、隣接するページのFragment
の生成は実際のスクロール開始時に行われる
● 生成済みのページに関してはRecyclerViewで
いくつかキャッシュされるが、
RecyclerView.setItemViewCacheSize()や、
LinearLayoutManager.getExtraLayoutSpace
()のOverrideでキャッシュ数を調整したりは出
来ない