首页 > 解决方案 > 如何隐藏导航栏中的默认徽标空间?

问题描述

目前,我的导航抽屉在“设置和隐私”项目之前显示了一个默认空间。我想删除这个空间并使文本左对齐。

在此处输入图像描述

我怎样才能做到这一点?

这是我的 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>

标签: javaandroidxmlnavigation-drawer

解决方案


像这样在菜单中创建 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>

这应该会自动删除空格,因为您有两组项目

如果那不起作用,请使用

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);

推荐阅读