我有一个带有一些项目的 FragmentList。如果我单击一个项目,则会打开包含 Viewpager 的相应片段。到目前为止没问题,但是如果我返回列表并再次单击该项目,则不再调用 getItem(int position) 方法。
这里有一个类似问题的链接:
Display fragment viewpager within a fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_fragment_runtime, container, false);
mViewPager = (ViewPager) view.findViewById(R.id.pager);
indicator = (TitlePageIndicator) view.findViewById(R.id.indicator);
MyFragmentPagerAdapter mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getActivity().getSupportFragmentManager());
mViewPager.setAdapter(mMyFragmentPagerAdapter);
indicator.setViewPager(mViewPager);
return view;
}
class MyFragmentPagerAdapter extends FragmentStatePagerAdapter implements TitleProvider {
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public String getTitle(int position) {
return muxbusTitles[position];
}
@Override
public Fragment getItem(int location) {
return muxbusFragmentList.get(location);
}
@Override
public int getCount() {
return muxbusTitles.length;
}
}
return view;
}
编辑: 如果有人感兴趣,解决方案是从 PagerAdapter 而不是 FragmentStatePagerAdpater 扩展,因为 Viewpager 已经在 Fragment 中。