1. ホーム
  2. android

[解決済み] FragmentPagerAdapter 非推奨

2023-05-02 15:51:19

質問

API27以降 FragmentPagerAdapter は非推奨です。これに代わる最適なものは何でしょうか?

私の場合、私は次のようなものを理解しています。 super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) を使用する必要があることは理解できますが、私のコードのどこにこれが必要なのかわかりません。

私のクラスでこれらのインポートを得ました。

import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter

しかし FragmentPagerAdapterclass MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){ が消されます。

class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager){
        private val fragmentList : MutableList<androidx.fragment.app.Fragment> = ArrayList()
        private val titleList : MutableList<String> = ArrayList()

        override fun getItem(position: Int): androidx.fragment.app.Fragment {
            return fragmentList[position]
        }

        override fun getCount(): Int {
            return fragmentList.size
        }

        fun addFragment(fragment: androidx.fragment.app.Fragment, title: String){
            fragmentList.add(fragment)
            titleList.add(title)
        }

        override fun getPageTitle(position: Int): CharSequence? {
            return titleList[position]
        }
    }

どのように解決するのですか?

2021-06-14更新 : 現時点では ViewPager そのものは、ほとんど非推奨です。技術的には ViewPager は非推奨ではありませんが、2つの具体的な PagerAdapter の実装は FragmentPagerAdapterFragmentStatePagerAdapter - は非推奨です。理想的なのは、他のもの、例えば ViewPager2 または Accompanistのページャーを使用する場合 .

置き換える。

class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager)

を使っています。

class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)

(仮に MyViewPagerAdapter はこの値を設定する必要がないと仮定します)