Как добавить RelativeLayout в качестве пункта меню – Android

У меня есть XML для меню с item и group . Я намерен добавить RelativeLayout в качестве элемента меню в XML, чтобы он выглядел так:

 <menu> <item1/> <item2 <RelativeLayout> <TextView1/> <TextView2/> <RelativeLayout> /> </menu> 

Можно ли это выполнить в XML-макете или программно? Если нет, то работа будет полезной. Благодарю.

Создайте файл макета с нужным видом, а затем используйте его так:

 <item android:id="@+id/menu_refresh" android:title="@string/refresh" yourapp:showAsAction="never" android:actionLayout="@layout/my_custom_layout"/> 

Редактирование текстового вида –

 @Override public boolean onPrepareOptionsMenu(Menu menu) { //Get a reference to your item by id MenuItem item = menu.findItem(R.id.menu_refresh); //Here, you get access to the view of your item, in this case, the layout of the item has a RelativeLayout as root view but you can change it to whatever you use RelativeLayout rootView = (RelativeLayout)item.getActionView(); //Then you access to your control by finding it in the rootView TextView textview1 = (TextView) rootView.findViewById(R.id.text1); //And from here you can do whatever you want with your text view return true; } 

Важная точка :

Чтобы использовать Relativelayout или любую actionLayout компоновку, вы должны использовать actionLayout как отставленный код @ Jack. Но Имейте это в виду.

android:actionLayout="@layout/my_custom_layout" не работает, вам нужно использовать app:actionLayout="@layout/my_custom_layout"

Потому что если вы используете ActionbarSherlock или AppCompat , пространство имен android: не будет работать для MenuItems . Это связано с тем, что в этих библиотеках используются пользовательские атрибуты, которые имитируют API Android, так как они не существовали в ранних версиях фреймворка.

Вы не можете напрямую поместить его в menu.xml, вы должны использовать атрибут android: actionLayout.

Он работает следующим образом:

menu.xml

 <menu> <item ... android:actionLayout="@layout/custom_layout"/> </menu> 

custom_layout.xml

 <RelativeLayout ...> <TextView .../> <TextView .../> <RelativeLayout> 
Intereting Posts
Могу ли я настроить gmail в эмуляторе Android? Android: будет активирован динамически зарегистрированный широковещательный приемник, если процесс приложения был убит Плагин слишком стар, обновите его до более поздней версии или установите переменную окружения ANDROID_DAILY_OVERRIDE Путаница: как работает SQLiteOpenHelper onUpgrade ()? И вместе с импортом старой резервной копии базы данных? Потоковая передача видео с Android-устройства на сервер LAMP Обнаружение начала прокрутки и завершения прокрутки в режиме recyclerview Настройте размер значка кнопки плавающего действия (fab) Есть ли способ предотвратить пересканирование списка в верхнее положение при изменении данных адаптера? GetSupportActionBar (). SetTitle () vs toolbar.setTitle () Как отключить мониторинг устройств в Android Studio? Nexus 5 не будет входить в режим доз, используя ADB Установите режим сцены камеры для OpenCV на Android Android: периодически отправлять данные о местоположении в фоновом режиме (каждые 30 секунд) и запрашивать у сервера новые данные Использование layout_alignBaseline и layout_alignBottom в RelativeLayout вместе Поиск пользователей в хосте