BottomNavigation 不适用于带有组件导航的片段
BottomNavigation not work in fragment with component navigation
底部导航在我单击时不会更改片段,它在 activity 上有效,但当我在片段中使用它时,它不会。
我的片段
public class MessageFragment extends Fragment {
private FragmentMessageBinding binding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentMessageBinding.inflate(inflater,container,false);
NavController navController = NavHostFragment.findNavController(MessageFragment.this);
NavigationUI.setupWithNavController(binding.answerNavView22, navController);
return binding.getRoot();
}
在片段xml中
<RelativeLayout
android:backgroundTint="#E3E1E1"
android:layout_marginTop="2dp"
android:layout_marginHorizontal="2dp"
android:visibility="visible"
android:id="@+id/layout_answer"
android:layout_width="0dp"
android:layout_height="0dp"
android:animateLayoutChanges="true"
android:background="@drawable/corner_top"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar2">
<androidx.fragment.app.FragmentContainerView
android:layout_below="@id/answer_nav_view22"
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_answer" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:background="#E3E1E1"
android:id="@+id/answer_nav_view22"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_answer_nav" />
</RelativeLayout>
我检查了 id 菜单,它与 nav_answer 中的 id 相同。我不知道为什么,请帮助我!
祝大家有个愉快的一天!
我明白你在做什么,它将是片段中的一个片段(主机将是父片段,底部导航中的每个选项卡将是子片段)。导航组件不支持这种形式
底部导航在我单击时不会更改片段,它在 activity 上有效,但当我在片段中使用它时,它不会。
我的片段
public class MessageFragment extends Fragment {
private FragmentMessageBinding binding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
binding = FragmentMessageBinding.inflate(inflater,container,false);
NavController navController = NavHostFragment.findNavController(MessageFragment.this);
NavigationUI.setupWithNavController(binding.answerNavView22, navController);
return binding.getRoot();
}
在片段xml中
<RelativeLayout
android:backgroundTint="#E3E1E1"
android:layout_marginTop="2dp"
android:layout_marginHorizontal="2dp"
android:visibility="visible"
android:id="@+id/layout_answer"
android:layout_width="0dp"
android:layout_height="0dp"
android:animateLayoutChanges="true"
android:background="@drawable/corner_top"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar2">
<androidx.fragment.app.FragmentContainerView
android:layout_below="@id/answer_nav_view22"
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_answer" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:background="#E3E1E1"
android:id="@+id/answer_nav_view22"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_answer_nav" />
</RelativeLayout>
我检查了 id 菜单,它与 nav_answer 中的 id 相同。我不知道为什么,请帮助我!
祝大家有个愉快的一天!
我明白你在做什么,它将是片段中的一个片段(主机将是父片段,底部导航中的每个选项卡将是子片段)。导航组件不支持这种形式