Android 请帮我拿些碎片
我有一个framelayout活动,其中加载了片段。 “活动”将有一个包含活动列表的侧栏 开放碎片1 开放碎片2 开放碎片3 如果我单击open fragment1,fragment1只会在其中打开一个列表。 如果单击open fragment2或open fragment3,将打开fragment2或fragment3,其中包含任何信息 如果我点击fragment1,列表中的一个项目会打开另一个片段,例如someFragment和backstack中的fragment1 现在,如果我打开侧菜单,并尝试打开或碎片2碎片3,它会打开。但当单击“上一步”时,有些片段会重叠Android 请帮我拿些碎片,android,Android,我有一个framelayout活动,其中加载了片段。 “活动”将有一个包含活动列表的侧栏 开放碎片1 开放碎片2 开放碎片3 如果我单击open fragment1,fragment1只会在其中打开一个列表。 如果单击open fragment2或open fragment3,将打开fragment2或fragment3,其中包含任何信息 如果我点击fragment1,列表中的一个项目会打开另一个片段,例如someFragment和backstack中的fragment1 现在,如果我打开侧菜单
//open fragment1 click
Fragment fragment1 = new Fragment1 ();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment1).commit();
//open fragment2 click
Fragment fragment2 = new Fragment2 ();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment2 ).commit();
//open fragment3 click
EmployeessList fragment3 = new fragment3 (getString(R.string.employee_list_link));
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment3 ).commit();
我需要在新的片段开始时被纯化
零碎地
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
FragmentTransaction fTrans = getFragmentManager().beginTransaction();
Fragment someFragment= new SomeFragment();
fTrans.replace(R.id.content_frame, someFragment);
fTrans.addToBackStack(null);
fTrans.commit();
}
在提交从侧菜单调用的事务之前-添加以下代码:
if (fragmentManager.getBackStackEntryCount() > 0) {
fragmentManager.popBackStack(fragmentManager.getBackStackEntryAt(0).getId(),
FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
这将清除您当前的备份。更改替换为添加:
fTrans.add(R.id.content_frame, someFragment);
@Sergey Balybin,在你打开fragment2 fragment1第一次打开之前,如果我更改为添加一些内容,请发布你的日志。ie我在片段中someFragment从backstack点击打开的fragment2获得fragment1,然后移除并在其位置安装fragment2我在创建fragment1时添加了日志,它们显示在调用fragment2之前,fragment1再次调用