У меня есть горизонтальный просмотрщик с FragmentStatePagerAdapter, и каждый элемент фрагмента содержит вертикальный просмотрщик с FragmentStatePagerAdapter.Я хочу обновить все внутри обоих пейджеров.Итак, я использую notifyDataSetChanged () на горизонтальном viewpager, который как-то запускает notifyDataSetChanged () вертикального viewpager.Я вижу новый обновленный контент на обоих окнах просмотра, но элементы, видимые пользователю, не обновляются.
Например, 1 2 3 4 5 6 7 8 9
Если я 'm на элементе «3» в горизонтальном видоискателе, затем обновляется только 6,7,8,9 страниц, и то же самое касается вертикального видового пейджера.Похоже, что фрагменты, которые не находятся в памяти, обновляются только.
Я уже использую "POSITION_NONE" на обоих адаптерах.
Любая помощь приветствуется.
Обновление:
HorizontalAdapter
public class HorizontalAdapter extends FragmentStatePagerAdapter {
private ArrayList<HorizontalCardFragment> mFragmentsList;
public HorizontalAdapter(ArrayList<HorizontalCardFragment> fragmentsList, FragmentManager fm) {
super(fm);
mFragmentsList = fragmentsList;
}
@Override
public int getCount() {
return mFragmentsList.size();
}
@Override
public Fragment getItem(int position) {
return mFragmentsList.get(position);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Object fragment = super.instantiateItem(container, position);
mFragmentsList.set(position, (HorizontalCardFragment) fragment);
return fragment;
}
@Override
public int getItemPosition(@NonNull Object object) {
return POSITION_NONE;
}
}
VerticalAdapter
открытый класс VerticalAdapter extends FragmentPagerAdapter {
private List<VerticalCardFragment> fragments;
public VerticalAdapter(FragmentManager fm, List<VerticalCardFragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getItemPosition(@NonNull Object object) {
return POSITION_NONE;
}
}