【发布时间】:2023-03-08 06:32:01
【问题描述】:
我有一个实现底部导航视图的主要活动,上面有 5 个片段。例如,当我按下第一个片段中的搜索按钮时,会显示片段搜索。但是当我转到另一个底部导航视图(片段 c)并按下手机时,它会导致片段 A 和片段 C 之间的重叠。
这是片段A和片段搜索之间的代码
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
searchHerbs searchHerbs = new searchHerbs();
searchHerbs.setArguments(arguments);
ft.replace(R.id.main_frame, searchHerbs);
ft.addToBackStack(null);
ft.commit();
这是底部导航视图片段之间的片段事务代码
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.main_frame,fragment);
fragmentTransaction.commit();
如果我跟踪代码。问题是 : 1.离开fragment search时没有addbackstack,想在onDestroyView中添加但是不知道怎么添加。 2. 我使用 addbackstack(null) 从片段 A 进行片段搜索。 3.当我从底部导航视图(片段c)按下另一个片段并按回时。它导致弹出片段到片段A。
我已经尝试在底部导航视图的片段事务中添加 addbackstack(null)。问题解决了,但又产生了另一个问题,例如: 1. 当我在应用程序关闭之前按回堆栈时,它会导致空白片段。 2.即使片段已更改,当我按下返回时,活动底部导航也不会更改。
【问题讨论】: