Панель действий показывает выпадающее меню, когда только один пункт в меню
Я использую тему app compat в моем приложении, и в панели действий у меня есть меню с одним пунктом, который должен отображаться в виде значка , но вместо этого я получаю кнопку меню, как это
Вот мой код меню 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;
}
Итак, может ли кто-нибудь помочь мне отобразить пункт меню так, как он должен?
Спасибо
2 ответа:
Используя библиотеку поддержки,
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>