Я знаю, что уже поздно. Но, может, кто-нибудь поможет, я тоже столкнулся с той же проблемой. Решение заключается в использовании StatePagerAdapter .
class ViewPagerAdapter extends FragmentStatePagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager, FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
Старый, который я использовал
class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
Разница на родителя Классы
FragmentStatePagerAdapter <== использовать это сейчас </p>
class ViewPagerAdapter extends FragmentStatePagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager, FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
FragmentPagerAdapter <== Я использовал </p>
class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
FragmentPagerAdapter это обеспечивает метод, который сейчас считается устаревшим, можно увидеть ниже:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser){
if (!loaded){
loadStatus();
}
}
}
это использовалось для управления ресурсами / воспроизведения / паузы на основе, если фрагмент виден пользователю в View Pager. Устаревший
Теперь Если вы хотите обрабатывать ресурсы / состояние фрагмента, вы должны использовать State Pager Adapter, как я описал выше. Реализация StatePagerAdapter вызовов onPause () и onResume () методов фрагмента на основе его видимости для пользователя.
Ответьте так на вопрос это Адаптер реализации, аналогичный StatePagerAdapter , и приостановите проигрыватель с помощью метода onPause () фрагмента и возобновите его в методе onResume ().