web-dev-qa-db-ja.com

FragmentStatePagerAdapterはAPI 27から非推奨になりました

FragmentStatePagerAdapterはAPI 27から非推奨になりました。FragmentStatePagerAdapterの代替手段は何ですか?

private class MainPagerAdapter extends FragmentStatePagerAdapter {

        MainPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment result = new DummyFragment();
             return result;
        }

        @Override
        public int getCount() {
            return 5;
        }

    }

上記のコードは、非推奨としてFragmentStatePagerAdaptergetItemおよびsuper(fm);を示しています

22
MJM

次のコンストラクタは同じことを行います

super(@NonNull FragmentManager fm)
super(@NonNull FragmentManager fm, BEHAVIOR_SET_USER_VISIBLE_HINT)

BEHAVIOR_SET_USER_VISIBLE_HINTを渡すことは非推奨になりました。代わりにBEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENTを渡す必要があります。

それらを渡す際の違いはFragmentPagerAdapterで説明されています:

 /**
 * Indicates that Fragment#setUserVisibleHint(boolean) will be 
 * called when the current fragment changes.
 */
@Deprecated
public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0;

/**
 * Indicates that only the current fragment will be 
 * in the Lifecycle.State#RESUMED state. All other Fragments 
 * are capped at Lifecycle.State#STARTED.
 */
public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1;
21
hkpogo

延長できます

androidx.fragment.app.FragmentStatePagerAdapter;

そして電話する

super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);

クラスのコンストラクター

12

次のようにMainPagerAdapterに動作を追加する必要があります。

super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);

6
Moisoni Ionut

このクラスは、APIレベル27.1.0で廃止されました。サポートされていたv13 https://developer.Android.com/reference/Android/support/v13/app/FragmentStatePagerAdapter

サポートv4からFragmentStatePagerAdapterを使用します https://developer.Android.com/reference/Android/support/v4/app/FragmentStatePagerAdapter

1
Azay Gupta

Documentation によると、Android.support.v13.app.FragmentPagerAdapterは廃止されました。

Android.support.v4.app.FragmentPagerAdapterに置き換えることができます。

これをチェックアウト 公式の文書化。

1