我正在开发一个Android应用程序,其中我的MainActivity中有一个ViewPager,由3个片段组成。 问题如下,当我滑动到第三个片段,并返回到第一个,片段1的onCreateView被调用,这是我真正想要的,但是,如果我只是甩到第二个片段,并返回到第一个,onCreateView不叫! 我需要找到解决这个问题的办法,我花了几个小时试图找到一个解决方案,但不知道解决它。 下面是我的MainActivity相关ViewPager代码使用ViewPager时不会调用CreateView上的片段使用ViewPager
private void setupViewPager(final ViewPager viewPager) {
final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new voting(), "ONE");
adapter.addFrag(new dashboard(), "TWO");
adapter.addFrag(new chats(), "THREE");
myAdapter=adapter;
viewPager.setAdapter(adapter);
viewPager.setOffscreenPageLimit(0);
}
private class ViewPagerAdapter extends FragmentStatePagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<Fragment>();
private final List<String> mFragmentTitleList = new ArrayList<String>();
private ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
Log.i("getItem","getItem");
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
private void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
//added newly
@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
@Override
public CharSequence getPageTitle(int position) {
return null;
}
}
“如果我只转到第二个片段并返回到第一个片段,onCreateView不会被调用” - 如果您的意思是onCreateView()没有在第一个片段上再次调用,那是非常正常的。 “我需要找到解决这个问题的办法” - 你为什么认为这是一个问题? – CommonsWare
@CommonsWare是的,这就是我的意思,但没有找到解决方案 –