Элемент меню не отображается на панели действий, только в меню переполнения

У меня точно такая же проблема, как в этих темах:

Никакие действия или значки не отображаются на панели действий; только в переполнении

Пункты меню не будут отображаться на панели действий

Никто не предложил решение, поэтому я хочу поднять его снова.

У меня есть xml-файл my_menu.xml, который выглядит следующим образом:

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

Моя деятельность расширяет ActionBarActivity и реализует эти методы:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.my_menu, menu);
            return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

            switch(item.getItemId()) {
                case R.id.delete:
                    //delete something
                    break;
            }

            return(true);
}

В моей книге: "Значение ifRoom означает, что пункт меню появится на панели действий, если для него есть место" - я протестировал использовать ifRoom, ifRoom|withText и всегда, но элемент всегда заканчивается в переполнении меню. Я протестировал приложение на разных устройствах, и там достаточно места. У кого-нибудь есть решение этого?

моток

2 ответа

Решение

Моя деятельность расширяет ActionBarActivity

Как указано в документации, если вы используете appcompat_v7 Бэкпорт панели действий и связанный с ней ActionBarActivityваш ресурс меню должен иметь showAsAction в пространстве имен, настроенном для вашего приложения:

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

Вот полный пример проекта, демонстрирующего использование appcompat_v7 Панель действий.

Попробуйте изменить это на

<item
        android:id="@+id/delete"
        android:showAsAction="always|withText"
        android:icon="@drawable/ic_delete_image"
        android:title="delete"/>

Надеюсь, что это поможет вам.

Другие вопросы по тегам