如何在导航栏中隐藏默认徽标 space?
How do I hide the default logo space in Navigation Bar?
目前我的导航抽屉在 'Settings and Privacy' 项之前显示默认的 space。我想删除这个 space 并使文本左对齐。
我该怎么做?
这是我的 XML 代码:
<group android:checkableBehavior="single">
<item
android:id="@+id/menu_bookmarks"
android:icon="@drawable/ic_baseline_bookmarks_24"
android:title="Bookmarks"
/>
<item
android:id="@+id/menu_topics"
android:icon="@drawable/ic_baseline_topic_24"
android:title="Topics"
/>
<item
android:id="@+id/menu_lists"
android:icon="@drawable/ic_baseline_featured_play_list_24"
android:title="Lists"
/>
</group>
<group android:checkableBehavior="single">
<item
android:id="@+id/menu_settings"
android:title="Settings and privacy"
android:icon="@null"
/>
<item
android:id="@+id/menu_help"
android:title="Help Centre"
android:icon="@null"
/>
</group>
您可以为可绘制图标使用 @null
值。
<item
android:id="@+id/settings_and_privacy"
android:icon="@null"
android:title="@string/settings_and_privacy" />
像这样在您的菜单中创建 2 组项目并将它们分为图标和非图标
<group
android:id="@+id/menu_top"
<item>
</item>
<item>
</item>
</group>
<group
android:id="@+id/menu_bottom"
<item>
android:icon="@null"
</item>
<item>
android:icon="@null"
</item>
</group>
这应该会自动删除 space,因为您有两组项目
如果这不起作用,请使用
int positionOfMenuItem =3; //the position of item you need to the left
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString(settingsItemTitle);
s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_LEFT), 0, s.length(), 0);
item.setTitle(s);
尝试将@null 与此组合一起使用,希望这对您有所帮助并解决您的问题。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item android:title="Primary">
<menu>
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_menu_camera"
android:title="@string/menu_home" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="@string/menu_gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="@string/menu_slideshow" />
</menu>
</item>
<item android:title="Secondary">
<menu android:title="Second Category">
<group
android:id="@+id/menu_bottom"
android:checkableBehavior="single">
<item
android:id="@+id/nav_settings"
android:icon="@null"
android:title="Settings and Privacy" />
</group>
</menu>
</item>
</group>
</menu>
目前我的导航抽屉在 'Settings and Privacy' 项之前显示默认的 space。我想删除这个 space 并使文本左对齐。
我该怎么做?
这是我的 XML 代码:
<group android:checkableBehavior="single">
<item
android:id="@+id/menu_bookmarks"
android:icon="@drawable/ic_baseline_bookmarks_24"
android:title="Bookmarks"
/>
<item
android:id="@+id/menu_topics"
android:icon="@drawable/ic_baseline_topic_24"
android:title="Topics"
/>
<item
android:id="@+id/menu_lists"
android:icon="@drawable/ic_baseline_featured_play_list_24"
android:title="Lists"
/>
</group>
<group android:checkableBehavior="single">
<item
android:id="@+id/menu_settings"
android:title="Settings and privacy"
android:icon="@null"
/>
<item
android:id="@+id/menu_help"
android:title="Help Centre"
android:icon="@null"
/>
</group>
您可以为可绘制图标使用 @null
值。
<item
android:id="@+id/settings_and_privacy"
android:icon="@null"
android:title="@string/settings_and_privacy" />
像这样在您的菜单中创建 2 组项目并将它们分为图标和非图标
<group
android:id="@+id/menu_top"
<item>
</item>
<item>
</item>
</group>
<group
android:id="@+id/menu_bottom"
<item>
android:icon="@null"
</item>
<item>
android:icon="@null"
</item>
</group>
这应该会自动删除 space,因为您有两组项目
如果这不起作用,请使用
int positionOfMenuItem =3; //the position of item you need to the left
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString(settingsItemTitle);
s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_LEFT), 0, s.length(), 0);
item.setTitle(s);
尝试将@null 与此组合一起使用,希望这对您有所帮助并解决您的问题。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item android:title="Primary">
<menu>
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_menu_camera"
android:title="@string/menu_home" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="@string/menu_gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="@string/menu_slideshow" />
</menu>
</item>
<item android:title="Secondary">
<menu android:title="Second Category">
<group
android:id="@+id/menu_bottom"
android:checkableBehavior="single">
<item
android:id="@+id/nav_settings"
android:icon="@null"
android:title="Settings and Privacy" />
</group>
</menu>
</item>
</group>
</menu>