好的,我会尝试尽可能清楚.我有一个名为CheckerManager的片段,它包含一个ViewPager.此ViewPager将允许用户在3个片段之间滑动,所有片段都是另一个名为CheckerFragment的片段的实例.我正在使用FragmentPagerAdapter来处理分页.这是它的外观
private class PagerAdapter extends FragmentPagerAdapter {
CharSequence mTabTitles[];
public PagerAdapter(FragmentManager fm, CharSequence tabTitles[]) {
super(fm);
mTabTitles = tabTitles;
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_LOTTO);
case 1:
return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_DAILY);
case 2:
return CheckerFragment.newInstance(MainFragment.DRAW_TITLE_EURO);
default:
return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
return mTabTitles[position];
}
@Override
public int getCount() {
return 3;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道ViewPager将始终在当前片段的任一侧创建片段.所以说我的3个CheckerFragments被称为A,B和C,当前的片段是A.已经创建了B. 但我的问题是,即使我仍然在看片段A,片段B是'活跃的'片段.我创建的每个输入实际上都对应于片段B而不是A.活动片段始终是ViewPager最后创建的片段.
我看了很多东西,看看是否有人有同样的问题,但我发现很难描述什么是错的.我认为这与所有ViewPagers片段属于同一类型的事实有关 - 即CheckerFragment.我在应用程序的其他地方的片段内部有一个ViewPager的工作实现,我唯一的区别是每个页面都是不同类型的片段.
任何帮助,将不胜感激!
*编辑
PagerAdapter adapter = new PagerAdapter(getChildFragmentManager(), tabTitles);
ViewPager viewPager = (ViewPager)view.findViewById(R.id.viewPagerChecker); …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentpageradapter android-nested-fragment
android ×1