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;
}
}
код выше показывает FragmentStatePagerAdapter
, getItem
и super(fm);
как устаревший
Ответы
Ответ 1
Следующие конструкторы делают то же самое
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;
Ответ 2
Вы можете продлить
androidx.fragment.app.FragmentStatePagerAdapter;
и позвонить
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
в конструкторе вашего класса
Ответ 3
Вам нужно добавить поведение в свой MainPagerAdapter
следующим образом:
super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
Ответ 4
Этот класс устарел на уровне API 27.1.0.
который был в поддержке v13
https://developer.android.com/reference/android/support/v13/app/FragmentStatePagerAdapter
Используйте FragmentStatePagerAdapter из поддержки v4https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter
Ответ 5
Согласно документации, файл android.support.v13.app.FragmentPagerAdapter устарел.
Вы можете заменить его на android.support.v4.app.FragmentPagerAdapter.
Проверьте это для официальной выписки.