簡體   English   中英

按下選項圖標時打開導航抽屜

[英]open navigation drawer when options icon pressed

我在應用程序中使用導航抽屜,從右到左設置。 我希望僅在按下選項菜單按鈕(3個點)時打開它。
我試過這個線程
按下選項菜單按鈕但不起作用時,打開導航抽屜

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>

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

就像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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM