Подтвердить что ты не робот

Как показать элементы меню переполнения в панели действий на Android

Я пишу приложение для Android, в котором я пытаюсь показать пункты меню переполнения ActionBar

используя эту замечательную ссылку: http://wptrafficanalyzer.in/blog/adding-action-items-and-overflow-menu-items-to-action-bar-in-android/

Проблема:

Not getting Overflow Menu Items (Icon)

Пожалуйста, смотрите ниже Экранный снимок для большей ясности: enter image description here

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: Элементы действия и меню переполнения в панели действий Split

Пожалуйста, помогите мне показать пункты меню переполнения (ICON) в ActionBar

Теперь, когда я нажимаю кнопку "Меню" в эмуляторе, я получаю пункты меню "Отдых".

4b9b3361

Ответ 1

Чтобы показать значок с тремя точками, в панели действий, просто используйте метод ниже в своем 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();
   }
 }

Ответ 2

Просто сказать, что если ваше устройство имеет кнопку меню, значок переполнения не будет отображаться, на новых телефонах отобразится кнопка переполнения. Я бы не рекомендовал ответ ASMUIRTI, поскольку это ужасный взлом, который нарушает согласованность с остальными приложениями на платформе.

вы должны использовать

android:showAsAction="never"

и пусть устройство android решит, требуется ли для этого устройства меню переполнения.

Ответ 3

Это может быть другая работа, которая действительно помогла мне. Держите одну выталкиваемую с тремя точками и дайте ей как пункт меню.

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

Ответ 4

Если я правильно понял ваш вопрос и вы хотите показать все ваши значки на панели действий, измените эти параметры в пунктах меню

android:showAsAction="ifRoom|withText"

к этому

android:showAsAction="always"

Ответ 5

Если вы используете вспомогательные библиотеки, чтобы отображать пункты меню в панели действий, вы должны использовать следующий синтаксис в своем xml:

yourappname:showAsAction="ifRoom|withText"

Ответ 6

Телефоны, на которых есть аппаратная кнопка меню, показывают дополнительные пункты меню при нажатии на кнопку аппаратного обеспечения. Новые телефоны, без кнопки меню оборудования, автоматически добавляют значок меню переполнения в панель действий. Дополнительные пункты меню - это те, у которых свойство showAsAction установлено никогда.

Ответ 7

В AndroidManifest.xml между add

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

который добавляет панель действий в ваше приложение.

После этого перейдите в menu.xml и добавьте следующие

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

между Наконец, в каждом элементе добавьте

android:showAsAction="always"
tools:ignore="AppCompatResource"