【问题标题】:open navigation drawer when options icon pressed按下选项图标时打开导航抽屉
【发布时间】:2015-02-19 21:09:36
【问题描述】:

我在我的应用程序中使用导航抽屉,从右到左设置。我希望它仅在按下选项菜单按钮时打开(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>

【问题讨论】:

  • mDrawerLayout.openDrawer(你的视图);

标签: android navigation-drawer android-button


【解决方案1】:

当您按下 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);
}

【讨论】:

    【解决方案2】:

    就像 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 个点,菜单打开,并且在按下设置时在菜单中显示抽屉。我想按三个点时打开抽屉。
    • 你有没有试过最后的修改(showAsAction=ifRoom)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多