【发布时间】:2015-05-08 12:40:07
【问题描述】:
在我的应用程序中,我有一个 Activity 并且有一些片段,我可以毫无问题地在片段之间切换。其中一个片段有ViewPager 和其他一些片段,在使用viewPager 在父片段abd 之间切换回嵌套片段后,嵌套片段不显示,我必须关闭应用程序并再次运行以显示。
主要活动:
public void updateFragment(int selectedItem) {
mFragment = null;
fts = getSupportFragmentManager().beginTransaction();
switch (selectedItem) {
case 0:
mFragment = new FragmentMainView();
break;
case 1:
mFragment = new FragmentAddNewWayBill();
break;
}
fts.replace(R.id.mainViewFragments, mFragment, "0");
fts.commit();
mDrawerState = false;
}
在这段代码中,我可以在片段之间切换。 FragmentMainView() 有带有一些已定义片段的 ViewPager。
public class FragmentMainView extends Fragment {
private FragmentActivity myContext;
private ViewPager vpPager;
private FragmentManager fragManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main_view, container, false);
G.currentActivity = FragmentMainView.this.getActivity();
fragManager = myContext.getSupportFragmentManager();
vpPager = (ViewPager) view.findViewById(R.id.vpPager);
MyPagerAdapter adapterViewPager = new MyPagerAdapter(fragManager);
vpPager.setAdapter(adapterViewPager);
return view;
}
public static class MyPagerAdapter extends FragmentPagerAdapter {
private static int NUM_ITEMS = 2;
public MyPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
// Returns total number of pages
@Override
public int getCount() {
return NUM_ITEMS;
}
// Returns the fragment to display for that page
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return FragmentOne.newInstance(0);
case 1:
return FragmentTwo.newInstance(1);
default:
return null;
}
}
// Returns the page title for the top indicator
@Override
public CharSequence getPageTitle(int position) {
String tabHeaderTitle = "";
switch (position) {
case 0:
tabHeaderTitle = UC.getString(R.string.waybill_register_package_owner);
break;
case 1:
tabHeaderTitle = UC.getString(R.string.create_new_waybill);
break;
}
return tabHeaderTitle;
}
}
@Override
public void onAttach(Activity activity) {
myContext=(FragmentActivity) activity;
super.onAttach(activity);
}
@Override
public void onResume() {
super.onResume();
}
}
在第一次打开FragmentMainView()MainActivityFragmentMainView() 上的片段进入ViewPager 工作正常并显示,但在MainActivity 中打开FragmentAddNewWayBill() 并再次切换到FragmentMainView() viewPager 上的片段不显示和我必须关闭应用程序并再次切换以显示。有什么问题?
【问题讨论】: