我在我的应用程序中使用滑动菜单。当用户按下幻灯片菜单项时,我将片段存储在堆栈中。如果我按下fragmentA,它将作为第一个元素堆叠,如果我打开幻灯片菜单并再次按下fragmentA它也将作为第二个元素,我想避免这种情况。当我使用android时,这会产生问题硬件后退按钮,因为堆栈中有两个相同的片段。如何避免它。
public void switchContent(Fragment fragment) {
mContent = fragment;
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(R.id.content_frame, mContent);
FragmentChangeActivity.fragmentStack.lastElement().onPause();
FragmentChangeActivity.fragmentStack.push(mContent);
ft.commit();
getSlidingMenu().showContent();
}
答案 0 :(得分:3)
试试这个:
public void switchContent(Fragment fragment) {
if(mContent !=null && (fragment.getClass().toString().equals(mContent.getClass().toString()))){
return;
}
mContent = fragment;
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(R.id.content_frame, mContent);
FragmentChangeActivity.fragmentStack.lastElement().onPause();
FragmentChangeActivity.fragmentStack.push(mContent);
ft.commit();
getSlidingMenu().showContent();
}