按下选项图标时打开导航抽屉

open navigation drawer when options icon pressed

我在我的应用程序中使用导航抽屉,从右到左设置。我希望它只在我按下选项菜单按钮时打开(3 个点)。
我试过这个帖子
Open navigation drawer when options menu button is pressed 但不工作。

menu.xml

<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">
    <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />
</menu>

就像 Surrender Kumar 说的,你必须手动打开抽屉,但是从 onOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_settings:
        mDrawerLayout.openDrawer(your view);
        return true;
    }

    return super.onOptionsItemSelected(item);
}

您需要在菜单上添加 showAsAction=ifRoom 和一个图标:

<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">
    <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:icon="@drawable/action_settings"
        android:orderInCategory="100"
        app:showAsAction="ifRoom" />
</menu>

当您按下 3 个点时 android 将显示折叠的菜单项。 如果你想从菜单项打开抽屉,我建议你找到一个代表 3 个点的图标(或者让抽屉像图标一样)和:

菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/ic_options"
        android:icon="@drawable/ic_menu_dots"
        android:showAsAction="always" />
</menu>

代码

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.ic_options:
        mDrawerLayout.openDrawer(your view);
        return true;
    }

    return super.onOptionsItemSelected(item);
}