我有一个包含ViewPager的片段(ProfileFragment)。 Viewpager包含2个片段。首次设置ProfileFragment时,它可以正常工作。但是,当您打开其他片段然后返回到ProfileFragment时,ViewPager中的片段就会消失。我如何确保他们留下来?这是我的代码:
ProfileFragment:
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
public class ProfileFragment extends Fragment {
private ViewPager pager;
private MyPagerAdapter adapter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_profile, container, false);
adapter = new MyPagerAdapter(getFragmentManager());
pager.setAdapter(adapter);
return view;
}
}
MyPagerAdapter:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new ProfileUserInfoFragment();
case 1:
return new ProfileUserInfoFragment();
default:
break;
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
注意:我看到一些建议使用getChildFragmentManager()而不是getFragmentManager(),但我不能使用它,它说无法解决方法。
答案 0 :(得分:0)
将其更改为:
adapter = new MyPagerAdapter(getChildFragmentManager()); pager.setAdapter(adapter);
答案 1 :(得分:0)
您的ProfileFragment应扩展android.support.v4.app.Fragment
以使用getChildFragmentManager()