Панель действий показывает выпадающее меню, когда в меню находится только один элемент

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

Введите описание изображения здесь

Вот мой код меню xml:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_play" android:icon="@drawable/play" android:orderInCategory="100" android:showAsAction="always"/> </menu> 

И вот код о том, как я инициализирую панель действий:

 getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setTitle(title); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(false); 

И покажите меню:

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.names, menu); playStop = menu.findItem(R.id.action_play); return true; } 

Так может кто-нибудь помочь мне отобразить пункт меню так, как должен?

благодаря

Используя библиотеку поддержки, android:showAsAction не выполнит свою задачу. Таким образом, ваше объявление меню неверно. Из документации

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" yourapp:showAsAction="ifRoom" /> ... </menu> 

Если в панели действий недостаточно места для элемента, он появится в переполнении действия.

Использование атрибутов XML из библиотеки поддержки

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


Итак, ваше меню xml должно быть

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_play" android:icon="@drawable/play" android:orderInCategory="100" app:showAsAction="always"/> </menu> 

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

 app:showAsAction="always" 

скорее, чем

 android:showAsAction="always" 
Intereting Posts
Android: потоковые данные камеры и запись на сервер Android: Как подключить временное, сгенерированное изображение к электронному письму? Android: Огромная разница в потреблении памяти при использовании выпадающих vs drawable-nodpi папок Уведомление об изменении родного контакта Как запустить приложение Android в фоновом режиме? TabLayout внутри фрагмента дает неправильный просмотр элементов Кордова: Возможно ли иметь разные идентификаторы приложений для платформ android и ios? Использовать камеру в пейзаже, когда мое приложение находится в портрете Как хранить данные из XML-файла в базе данных SQLite в android Как обращаться с уведомлением о появлении на Android, если он отображается автоматически GCM Определите, имеет ли устройство сенсорный экран или нет Android M 6.0 – SecurityException Пытаясь удалить учетные записи Как использовать zxing core как библиотеку в моем проекте Android? Запуск эспрессо после профайлинга приложения, но не проверка Поддержка MultiDex в приложении Android-приложения