簡體   English   中英

即使手機具有硬件菜單按鈕,如何始終顯示溢出菜單(ActionBar)?

[英]How to always show overflow menu (ActionBar) even if phone has hardware menu button?

下面提到的是已實現的代碼。 請為我提供建議,即使電話具有硬件菜單按鈕,如何在操作欄中創建“溢出菜單”選項?

這是我當前的代碼:

MainActivity.java

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_main_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

activity_main_actions.xml

<?xml version="1.0" encoding ="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Search  -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="@string/action_search"
      android:showAsAction="ifRoom"/>

<!-- Email -->
<item android:id="@+id/action_email"
      android:icon="@drawable/ic_action_email"
      android:title="@string/action_email"
      android:showAsAction="never"/>

<!-- Help -->
<item android:id="@+id/action_help"
      android:icon="@drawable/ic_action_help"
      android:title="@string/action_help"
      android:showAsAction="never"/>

<!-- attach -->
<item android:id="@+id/action_attach"
      android:icon="@drawable/ic_action_attachment"
      android:title="@string/action_attach"
      android:showAsAction="never" />

最終我用以下代碼得到了答案,它是在onCreateOptionMenu()方法之后編碼的。

import android.view.ViewConfiguration;

        private void getOverflowMenu(){

         try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            if(menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

嘗試這個:

由於將showAsAction屬性設置為never,因此這些菜單項將永遠不會顯示為動作視圖。 嘗試這個:

<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="@string/action_search"
      android:showAsAction="ifRoom|withText"/>

<!-- Email -->
<item android:id="@+id/action_email"
      android:icon="@drawable/ic_action_email"
      android:title="@string/action_email"
      android:showAsAction="ifRoom|withText"/>

<!-- Help -->
<item android:id="@+id/action_help"
      android:icon="@drawable/ic_action_help"
      android:title="@string/action_help"
      android:showAsAction="ifRoom|withText"/>

<!-- attach -->
<item android:id="@+id/action_attach"
      android:icon="@drawable/ic_action_attachment"
      android:title="@string/action_attach"
      android:showAsAction="ifRoom|withText"/>

暫無
暫無

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

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