Android 将导航抽屉中创建的片段替换为另一个片段
我有一个很好用的导航抽屉。我的意思是,我可以浏览与导航抽屉A、B、C、D相关的所有片段。我的问题出现在这里。假设我在片段A中,在这个片段中我有一个按钮,点击这个按钮,理想情况下应该用另一个按钮替换片段,比如Frag Z,一旦我在Frag Z中,我可以返回Frag A 为了实现这一点,我使用下面的代码。但是,新的片段Z在片段A的顶部看起来是透明的。可能有什么问题:Android 将导航抽屉中创建的片段替换为另一个片段,android,android-fragments,Android,Android Fragments,我有一个很好用的导航抽屉。我的意思是,我可以浏览与导航抽屉A、B、C、D相关的所有片段。我的问题出现在这里。假设我在片段A中,在这个片段中我有一个按钮,点击这个按钮,理想情况下应该用另一个按钮替换片段,比如Frag Z,一旦我在Frag Z中,我可以返回Frag A 为了实现这一点,我使用下面的代码。但是,新的片段Z在片段A的顶部看起来是透明的。可能有什么问题: Bundle bundle = new Bundle(); bun
Bundle bundle = new Bundle();
bundle.putInt("int", 1);
bundle.putString("str","string" );
fragmentTransaction = getFragmentManager().beginTransaction();
FragZ fragmentz = new FragZ();
fragment.setArguments(bundle);
fragmentTransaction.replace(R.id.some_container, fragmentz);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
编辑:
我已经找到了如下所示的解决方法,但是它并不能完全解决我的问题,因为新显示的片段仍然显示在导航抽屉中,可以进行切换,但它至少移除了片段的覆盖。我仍然想要一个解决方案来启动一个独立的片段
Bundle bundle = new Bundle();
bundle.putInt("int", 1);
bundle.putString("str","string" );
FragZ fragmentz = new FragZ();
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
fragment.setArguments(bundle);
ft.replace(R.id.main, fragment);
ft.addToBackStack(null);
ft.commit();
在活动中创建一个方法来启动片段。无论何时,只要想显示片段,就用一个数字或字符串来表示片段。您可以使用相同的功能从导航抽屉启动片段 例如:
public void displayView(int position) {
Fragment fragment = null;
currentFragmentNumber = position;
switch (position) {
case 0:
fragment = new frag1();
break;
case 1:
fragment = new frag2();
break;
case 2:
fragment = new frag3();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment)
.addToBackStack("tag").commit();
} else {
// error in creating fragment
Log.e(TAG, "Error in creating fragment");
}
}
您可以使用以下方法从活动中调用此函数:
((**ActivityName**) getActivity()).displayView(0);
这将适用于任何片段-活动对…但是我的场景是唯一的,因为添加了导航抽屉。在您的情况下,我将只替换框架布局R.id.frame_容器中的后续片段,这正是我编辑问题的目的,以显示我可以实现的,但不是我想要的,我想要一种新创建的片段不在导航抽屉中的情况