8

古い ViewPager が抱えていた多くの問題を解決するために、Google が RecyclerView に基づいて構築されたViewPager2をリリースしたことを非常に嬉しく思います。

古い ViewPager コードを ViewPager2 にすばやく置き換えました。

  1. xml で ViewPager を ViewPager2 に置き換えます

  2. FragmentPagerAdapter(FragmentManager)と置き換えますFragmentStateAdapter(Fragment)

  3. ViewPager のセットアップは次のとおりです。

    viewPager.adapter = fragmentAdapter
    
    val mediator = TabLayoutMediator(tabLayout, viewPager, true) { tab, position ->
        tab.text = fragmentAdapter.tabNames[position]
    }
    mediator.attach()
    

その他の変更は行われていません。

問題

上記の変更を行った後、問題に気付きました -

現在、私の ViewPager は通常の横方向のページャーであり、私の各フラグメントにfragmentAdapterは縦方向のRecyclerView.

RecyclerView のスクロール位置が 0 の場合、その RecyclerView 内のアイテムはクリック イベントやロング クリック イベントを受け取ることができませんが、スクロールすることはできます。スクロールされると、再びクリックを受け取ることができます*。

それも知っていますViewPager2RecyclerView、ネストされた RecyclerView と何か関係がありますか?

4

1 に答える 1