29

オーバーフローメニュー項目をActionBarに表示しようとしているAndroidアプリを書いています

この素晴らしいチュートリアルリンクを使用して:http ://wptrafficanalyzer.in/blog/adding-action-items-and-overflow-menu-items-to-action-bar-in-android/

問題:

Not getting Overflow Menu Items (Icon)

より明確にするために、以下のスクリーンショットを参照してください。 ここに画像の説明を入力してください

Manifest.xml:

<uses-sdk android:minSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" 
        android:uiOptions="splitActionBarWhenNarrow"              
        >

items.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/phone"
    android:title="@string/phone"
    android:icon="@drawable/phone"
    android:showAsAction="ifRoom|withText"
/>

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

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

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

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

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

私はこのチュートリアルを使用しており、図6:分割アクションバーのアクションアイテムとオーバーフローメニューを作成しようとしています。

アクションバーにオーバーフローメニュー項目(アイコン)を表示するのを手伝ってください

これで、エミュレータのメニューボタンをクリックするたびに、残りのメニュー項目が表示されます...。

4

7 に答える 7

58

Just to say that If your device has a menu-button, the overflow-icon won't show, on the newer phones the overflow button will show. I would not reccomend ASMUIRTI's answer since it is an awful hack that breaks consistency with the rest of the apps on the platform.

you must use

android:showAsAction="never"

and let the android device decide if the overflow menu is needed for that device.

于 2013-10-28T15:45:05.903 に答える
47

To show three dot icon, to Action Bar, just use below method in your OnCreate():

   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();
   }
 }
于 2013-03-19T07:22:12.760 に答える
12

This could be another work around, which really helped me. Keep one drawable with three dots and give it as a menu item.

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >


<item
    android:id="@+id/saveDetails"
    android:showAsAction="always"
    android:title="@string/save"/>

<item
    android:id="@+id/menu_overflow"
    android:icon="@drawable/dts"
    android:orderInCategory="11111"
    android:showAsAction="always">
    <menu>
        <item
            android:id="@+id/contacts"
            android:showAsAction="never"
            android:title="Contacts"/>


        <item
            android:id="@+id/service_Tasks"
            android:showAsAction="never"
            android:title="Service Tasks"/>


        <item
            android:id="@+id/charge_summary"
            android:showAsAction="never"
            android:title="Charge Summary"/>


        <item
            android:id="@+id/capture_signature"
            android:showAsAction="never"
            android:title="Capture Signature"/>
    </menu>
</item>

 </menu>
于 2014-04-04T06:26:43.327 に答える
1

If I understand your question correctly and you want to show all your icons on the action bar change this parameters in your menu items

android:showAsAction="ifRoom|withText"

to this

android:showAsAction="always"
于 2013-03-19T06:31:13.413 に答える
1

If you are using from supporting libraries, in order to show menu items in action bar you must use from the following syntax in your xml:

yourappname:showAsAction="ifRoom|withText"
于 2014-01-26T05:35:58.823 に答える
0

The phones which have menu hardware button show extra menu items on click of the hardware button. Newer phones, with no hardware menu button automatically add an Overflow menu icon to the Action Bar. The extra menu items are those which have "showAsAction" property set to never.

于 2014-09-11T18:34:54.100 に答える
0

Within AndroidManifest.xml between add

android:theme="@android:style/Theme.Holo.Light"

which adds the action bar in your application.

After that, go to menu.xml and add the followings

xmlns:tools="http://schemas.android.com/tools

between Finally in each item add

android:showAsAction="always"
tools:ignore="AppCompatResource"
于 2015-03-14T16:24:14.390 に答える