Intereting Posts
В чем разница между enableReaderMode и enableForegroundDispatch? Улучшить производительность Tesseract с OpenCV на Android Android Studio импортирует существующие модульные тесты «Невозможно найти информацию об оборудовании» Как «ждать активности» с помощью Appium, начинать и во время теста? ACTION_CANCEL при касании Отображение MapView с отсутствующими фрагментами с «x» в центре Использование FragmentTransaction с помощью DialogFragment Как использовать файл типа ввода в телефонной запинке? Как я могу получить контактные события, синхронизированные с контактами Google без года? После импорта Android Project в Eclipse, иконки пакета являются «белыми» Простые способы взаимодействия с сервисами? Ошибка памяти при загрузке большего количества изображений в Glide Открыть телеграмму в андроиде Как создать «ручную анимацию» в игру Android без задержек кода Нестандартные атрибуты пользовательского вида Android не работают после переключения на градус

Action-bar – элемент подменю, текст и изображение не работают должным образом

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

Я определяю пункты меню следующим образом.

<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/card_menu" android:icon="@drawable/abc" android:showAsAction="withText|always" android:title="cards"> <menu> <item android:id="@+id/C1" android:title="C1"/> <item android:id="@+id/C2" android:title="c2"/> <item android:id="@+id/C3" android:title="C3"/> </menu> </item> <item android:id="@+id/notification" android:actionLayout="@layout/notification_icon" android:icon="@drawable/notification" android:showAsAction="always" android:title="Notifications"/> <item android:id="@+id/filter" android:icon="@drawable/filter" android:showAsAction="always" android:title="Filter"/> </menu> 

Теперь, что происходит, моя панель действий отображает мои предметы правильно; Дело только в том, что когда окно находится в портретном режиме, оно отображает только изображение, а когда окно находится в ландшафтном режиме, оно отображает изображение и текст. Но мне нужен образ и текст в обоих режимах.

Как это сделать? Есть ли способ решить это?

Если вы используете ActionBar из Android Sopport Library ( android.support.v7.app.ActionBar ), вам может потребоваться изменить ваше меню и объявление элемента:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/notification" android:actionLayout="@layout/notification_icon" android:icon="@drawable/notification" android:showAsAction="always" android:title="Notifications"/> 

в

 <!-- Your menu --> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourappname="http://schemas.android.com/apk/res-auto" > <!-- Your item to be shown as action--> <item android:id="@+id/notification" android:actionLayout="@layout/notification_icon" android:icon="@drawable/notification" android:showAsAction="always" yourappname:showAsAction="always" android:title="Notifications"/> 

У меня была аналогичная проблема при обеспечении совместимости со старыми версиями Android.

Лучше использовать android:showAsAction="ifRoom|withText" чем always .
В этом случае зависит размер вашего текста и ширина экрана.