Android 导航视图中的分隔符(在BottomSheetDialogFragment中)不';没有显示?
我在BottomSheetDialogFragment中有一个NavigationView。但组间分隔器菜单不显示。 我检查了一些解决方案,例如这里 但这对我不起作用 nav_menu.xmlAndroid 导航视图中的分隔符(在BottomSheetDialogFragment中)不';没有显示?,android,bottom-sheet,Android,Bottom Sheet,我在BottomSheetDialogFragment中有一个NavigationView。但组间分隔器菜单不显示。 我检查了一些解决方案,例如这里 但这对我不起作用 nav_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+i
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item1"
android:title="Item 1" />
<item
android:id="@+id/item2"
android:title="Item 2" />
<group
android:id="@+id/group1"
android:checkableBehavior="single">
<item
android:id="@+id/g_item1"
android:title="Group Item 1" />
<item
android:id="@+id/g_item2"
android:title="Group Item 2" />
</group>
<group
android:id="@+id/group2"
android:checkableBehavior="single">
<item
android:id="@+id/g2_item1"
android:title="Group Item 1" />
<item
android:id="@+id/g2_item2"
android:title="Group Item 2" />
</group>
<item android:id="@+id/submenu"
android:title="Sub menu" >
<menu>
<item
android:id="@+id/sub_item1"
android:title="Sub Item 1" />
<item
android:id="@+id/sub_item2"
android:title="Sub Item 2" />
</menu>
</item>
</menu>
结果就在这里
我需要这个结果
编辑:
请参阅Android Studio和AVD的结果
像这样使用,如果您想在每个菜单中使用分隔符,那么您需要使用组创建单个项,这是预期的行为,因为ListDifferor在默认对话框主题中为空 您可以通过向NavigationView应用不同的主题来显示分隔符,如下所示
请参见下面的回答我只需要在组之间使用分隔符,而不是项目,但行显示了为什么它没有显示在您的设备上这是正确的问题:-)我将这一行添加到styles.xml@color/colorPrimaryDark以更改分隔符的颜色。看到来自Android Studio的结果和来自AVDMaybe的结果,因为它是一个片段?!
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".BottomSheetFragment">
<com.google.android.material.navigation.NavigationView
android:id="@+id/dialogFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:menu="@menu/nav_menu" />
</FrameLayout>
public class BottomSheetFragment extends BottomSheetDialogFragment {
View view;
public BottomSheetFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_bottom_sheet, container, false);
NavigationView navigationView = view.findViewById(R.id.dialogFragment);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
NavController navController = Navigation.findNavController(getActivity(), R.id.navGraph);
dismiss();
return NavigationUI.onNavDestinationSelected(menuItem, navController);
}
});
return view;
}
}
<menu 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"
tools:context=".MainActivity">
<group android:id="@+id/grp1" android:checkableBehavior="single" >
<item
android:id="@+id/navigation_item_1"
android:checked="true"
android:icon="@drawable/ic_home"
android:title="@string/navigation_item_1" />
</group>
<group android:id="@+id/grp2" android:checkableBehavior="single" >
<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_home"
android:title="@string/navigation_item_2" />
</group>
</menu>