我有一个主要活动,该活动实现了底部导航视图,上面有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.当我离开片段搜索时,没有addbackstack,我想在onDestroyView中添加它,但我不知道如何。 2.我使用addbackstack(null)从片段A进行片段搜索。 3.当我从底部导航视图中按另一个片段(片段c)并按回时。它会导致弹出片段碎片A。
我已经尝试在底部导航视图的片段事务中添加addbackstack(null)。问题已解决,但又产生了另一个问题,例如: 1.在我关闭应用程序之前按堆栈时,它会导致空白片段。 2.即使片段已更改,当我按回时,活动的底部导航也不会更改。
答案 0 :(得分:0)
我知道一个技巧,但是它正在进行中。在新的Fragment中,将根布局背景设为白色,并使其可点击,就像
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:padding="5dp"
android:background="@color/white"
android:clickable="true"
app:cardCornerRadius="10dp"
app:contentPadding="5dp">