Элемент меню не отображается на панели действий, только в меню переполнения
У меня точно такая же проблема, как в этих темах:
Никакие действия или значки не отображаются на панели действий; только в переполнении
Пункты меню не будут отображаться на панели действий
Никто не предложил решение, поэтому я хочу поднять его снова.
У меня есть 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"/>
Надеюсь, что это поможет вам.