App: showAsAction vs android: showAsAction
Я создаю приложение для Android и хочу, чтобы на панели действий всегда отображалась кнопка. Я последовал за этим руководством и другими, но ни один из них, похоже, не решил мою проблему (хотя они очень близки, я думаю...).
У меня есть пакет "приложение" и используйте app:showAsAction="always"
. Не отображается ошибка, но на панели нет кнопки. Когда я меняю его на android:showAsAction="always"
, на панели появляется кнопка, но AndroidStudio говорит мне, что я должен пойти для "app: showAsAction с помощью appCompat...".
У меня есть пользовательская тема с parent="@android:style/Theme.Holo.Light.DarkActionBar">
и для самой панели: parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
.
Должен ли я что-то изменить и заставить работать app:showAsAction
или игнорировать сообщение об ошибке AndroidStudio и перейти на android:showAsAction
?
Ответы
Ответ 1
Это документация правила lint:
AppCompatResource
Сводка: пространство имен в меню
Приоритет: 5/10
Тяжесть: ошибка
Категория: Юзабилити
При использовании библиотеки appcompat ресурсы меню должны ссылаться на showAsAction в приложении: пространство имен, а не пространство android: namespace.
Аналогично, если вы не используете библиотеку appcompat, вы должны использовать android: showAsAction.
Я думаю, проблема в том, что вы смешиваете меню Framework Activity и AppCompat.
Вы должны использовать AppCompatActivity
с панелью действий AppCompat и app:showAsAction
; или Activity
с помощью android:showAsAction
.