Android 儿童';在父viewpager';s页幻灯片
我的活动中有一个带有4个片段的ViewPager(父ViewPager)。其中一个片段实现了具有自动滑动功能的滑动ViewPager(子ViewPager) 当我将父ViewPager滑动到(比如)选项卡3,然后返回到包含滑动ViewPager的第一个片段时,部分幻灯片消失,部分幻灯片保留。当我来回滑动ViewPager(子ViewPager)两次时,它会恢复到原始状态 我假设滑动视图寻呼机的片段状态在父视图寻呼机滑动时丢失 这是父ViewPager的适配器:Android 儿童';在父viewpager';s页幻灯片,android,android-fragments,android-viewpager,adapter,Android,Android Fragments,Android Viewpager,Adapter,我的活动中有一个带有4个片段的ViewPager(父ViewPager)。其中一个片段实现了具有自动滑动功能的滑动ViewPager(子ViewPager) 当我将父ViewPager滑动到(比如)选项卡3,然后返回到包含滑动ViewPager的第一个片段时,部分幻灯片消失,部分幻灯片保留。当我来回滑动ViewPager(子ViewPager)两次时,它会恢复到原始状态 我假设滑动视图寻呼机的片段状态在父视图寻呼机滑动时丢失 这是父ViewPager的适配器: public class View
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
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, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
正在使用getChildFragmentManager()
调用子ViewPager,如下所示:
sliding_pagerAdapter = new sliding_PageAdapters(getChildFragmentManager(), 4);
adapter = new ViewPagerAdapter(getSupportFragmentManager());
正在使用getSupportFragmentManager()
调用父ViewPager,如下所示:
sliding_pagerAdapter = new sliding_PageAdapters(getChildFragmentManager(), 4);
adapter = new ViewPagerAdapter(getSupportFragmentManager());
我能想到一个问题。在父viewpager调用上(限制) 此处限制是在空闲状态下应保留在视图层次结构中当前页面任一侧的页面数。超出此限制的页面将在需要时从适配器重新创建。因此,根据您的用例设置适当的限制
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new MyAdapter(fragmentManager));
viewPager.setOffscreenPageLimit(2);
我能想到一个问题。在父viewpager调用上(限制) 此处限制是在空闲状态下应保留在视图层次结构中当前页面任一侧的页面数。超出此限制的页面将在需要时从适配器重新创建。因此,根据您的用例设置适当的限制
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new MyAdapter(fragmentManager));
viewPager.setOffscreenPageLimit(2);