从 NavigationView 中删除分线器 android
remove line divider from NavigationView android
我有这个用于布局 NavigationView 的菜单:
<item android:title="title1">
<menu>
<item
android:id="@+id/nav_tab1"
android:icon="@drawable/ic_action_nav_tab1"
android:title="test1" />
<item
android:id="@+id/nav_tab2"
android:icon="@drawable/ic_action_nav_tab2"
android:title="test2" />
</menu>
</item>
<item android:title="title2">
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_action_settings"
android:title="test3" />
</menu>
</item>
如何从菜单中删除行分隔符?
<group android:id="@+id/menu_top">
<item android:title="title1">
<menu>
<item
android:id="@+id/nav_tab1"
android:icon="@drawable/ic_action_nav_tab1"
android:title="test1" />
<item
android:id="@+id/nav_tab2"
android:icon="@drawable/ic_action_nav_tab2"
android:title="test2" />
</menu>
</item>
<item android:title="title2">
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_action_settings"
android:title="test3" />
</menu>
</item>
尝试将这些项目分组...我还没有尝试过,但它应该可以工作
将此添加到您的 Styles
:
<item name="android:listDivider">@android:color/transparent</item>
在这里您可以阅读更多相关信息:
我在使用 BottomNavigationView 时遇到了同样的问题。也许有人会发现我的解决方案很有用。
android 设备上此分隔符 API < 21 的原因是 BottomNavigationView 来源中的代码片段:
if (VERSION.SDK_INT < 21) {
this.addCompatibilityTopDivider(context);
}
addCompatibilityTopDivider(context) 方法:
private void addCompatibilityTopDivider(Context context) {
View divider = new View(context);
divider.setBackgroundColor(ContextCompat.getColor(context, color.design_bottom_navigation_shadow_color));
LayoutParams dividerParams = new LayoutParams(-1, this.getResources().getDimensionPixelSize(dimen.design_bottom_navigation_shadow_height));
divider.setLayoutParams(dividerParams);
this.addView(divider);
}
我的解决方案是覆盖 colors.xml
中的 design_bottom_navigation_shadow_color
,如下所示:
<color name="design_bottom_navigation_shadow_color" tools:override="true">#00000000</color>
而且有效:)
我有这个用于布局 NavigationView 的菜单:
<item android:title="title1">
<menu>
<item
android:id="@+id/nav_tab1"
android:icon="@drawable/ic_action_nav_tab1"
android:title="test1" />
<item
android:id="@+id/nav_tab2"
android:icon="@drawable/ic_action_nav_tab2"
android:title="test2" />
</menu>
</item>
<item android:title="title2">
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_action_settings"
android:title="test3" />
</menu>
</item>
如何从菜单中删除行分隔符?
<group android:id="@+id/menu_top">
<item android:title="title1">
<menu>
<item
android:id="@+id/nav_tab1"
android:icon="@drawable/ic_action_nav_tab1"
android:title="test1" />
<item
android:id="@+id/nav_tab2"
android:icon="@drawable/ic_action_nav_tab2"
android:title="test2" />
</menu>
</item>
<item android:title="title2">
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_action_settings"
android:title="test3" />
</menu>
</item>
尝试将这些项目分组...我还没有尝试过,但它应该可以工作
将此添加到您的 Styles
:
<item name="android:listDivider">@android:color/transparent</item>
在这里您可以阅读更多相关信息:
我在使用 BottomNavigationView 时遇到了同样的问题。也许有人会发现我的解决方案很有用。
android 设备上此分隔符 API < 21 的原因是 BottomNavigationView 来源中的代码片段:
if (VERSION.SDK_INT < 21) {
this.addCompatibilityTopDivider(context);
}
addCompatibilityTopDivider(context) 方法:
private void addCompatibilityTopDivider(Context context) {
View divider = new View(context);
divider.setBackgroundColor(ContextCompat.getColor(context, color.design_bottom_navigation_shadow_color));
LayoutParams dividerParams = new LayoutParams(-1, this.getResources().getDimensionPixelSize(dimen.design_bottom_navigation_shadow_height));
divider.setLayoutParams(dividerParams);
this.addView(divider);
}
我的解决方案是覆盖 colors.xml
中的 design_bottom_navigation_shadow_color
,如下所示:
<color name="design_bottom_navigation_shadow_color" tools:override="true">#00000000</color>
而且有效:)