Пункт меню Текст не отображается в DOWELAPPBAR -- android поле с участием android-layout поле с участием android-xml пол Связанный проблема

Menu item text not showing in BottomAppBar


1
vote

проблема

русский

Я пытался добавить заголовок пункт меню вместе с значком меню в нижней панели приложений в Android-студии. Я пытался установить:

 <код> app:showAsAction="ifRoom|withText"   

Но это не сработало. Только значок появляется. Я также пытался сделать свой собственный файл макета и использовать ActionLayout:

 <код>         android:actionLayout="@layout/menu_item_lists"   

Это тоже не работало.

Пример того, что я хочу (с текстом под значками):

Что это выглядит сейчас:

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

xml для моей деятельности:

 <код> <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main_constraint_layout"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="#ededed"     tools:context=".MainActivity">       <fragment         android:id="@+id/activity_main_nav_host_fragment"         android:name="androidx.navigation.fragment.NavHostFragment"         android:layout_width="match_parent"         android:layout_height="match_parent"         app:defaultNavHost="true"         app:navGraph="@navigation/navigation_graph" />      <androidx.coordinatorlayout.widget.CoordinatorLayout         android:layout_width="match_parent"         android:layout_height="match_parent">          <com.google.android.material.bottomappbar.BottomAppBar             android:id="@+id/bottomAppBar"             style="@style/Widget.MaterialComponents.BottomAppBar"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_gravity="bottom"             android:background="#ffffff"             app:fabAlignmentMode="end"             app:fabCradleMargin="8dp"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintStart_toStartOf="parent" />          <com.google.android.material.floatingactionbutton.FloatingActionButton             android:id="@+id/floatingActionButton"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:clickable="true"             android:focusable="true"             app:backgroundTint="@color/colorPrimary"             app:layout_anchor="@id/bottomAppBar"             app:layout_constraintBottom_toBottomOf="parent"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintHorizontal_bias="0.502"             app:layout_constraintStart_toStartOf="parent"             app:rippleColor="@color/colorAccent"             app:srcCompat="@drawable/ic_add_white_24dp" />      </androidx.coordinatorlayout.widget.CoordinatorLayout>  </androidx.constraintlayout.widget.ConstraintLayout>   

и код для моего меню:

 <код> typedef NS_ENUM(NSInteger, MyStyle) {     MyStyleDefault,     MyStyleCustom };  typedef NS_OPTIONS(NSInteger, MyOption) {     MyOption1 = 1 << 0,     MyOption2 = 1 << 1, }; 0  

Код, где я пытался создать свой собственный макет действий, если это необходимо:

 <код> typedef NS_ENUM(NSInteger, MyStyle) {     MyStyleDefault,     MyStyleCustom };  typedef NS_OPTIONS(NSInteger, MyOption) {     MyOption1 = 1 << 0,     MyOption2 = 1 << 1, }; 1  
Английский оригинал

I've been trying to add the title of the menu item together with the menu icon in the Bottom App Bar in Android Studio. I've tried to set:

app:showAsAction="ifRoom|withText" 

But it didn't work. Only the icon shows up. I've also tried to make my own layout-file and use actionLayout:

        android:actionLayout="@layout/menu_item_lists" 

this didn't work either.

Example of what I want (with the text underneath the icons):

What it looks like now:

enter image description here

XML for my activity:

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/activity_main_constraint_layout"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="#ededed"     tools:context=".MainActivity">       <fragment         android:id="@+id/activity_main_nav_host_fragment"         android:name="androidx.navigation.fragment.NavHostFragment"         android:layout_width="match_parent"         android:layout_height="match_parent"         app:defaultNavHost="true"         app:navGraph="@navigation/navigation_graph" />      <androidx.coordinatorlayout.widget.CoordinatorLayout         android:layout_width="match_parent"         android:layout_height="match_parent">          <com.google.android.material.bottomappbar.BottomAppBar             android:id="@+id/bottomAppBar"             style="@style/Widget.MaterialComponents.BottomAppBar"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_gravity="bottom"             android:background="#ffffff"             app:fabAlignmentMode="end"             app:fabCradleMargin="8dp"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintStart_toStartOf="parent" />          <com.google.android.material.floatingactionbutton.FloatingActionButton             android:id="@+id/floatingActionButton"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:clickable="true"             android:focusable="true"             app:backgroundTint="@color/colorPrimary"             app:layout_anchor="@id/bottomAppBar"             app:layout_constraintBottom_toBottomOf="parent"             app:layout_constraintEnd_toEndOf="parent"             app:layout_constraintHorizontal_bias="0.502"             app:layout_constraintStart_toStartOf="parent"             app:rippleColor="@color/colorAccent"             app:srcCompat="@drawable/ic_add_white_24dp" />      </androidx.coordinatorlayout.widget.CoordinatorLayout>  </androidx.constraintlayout.widget.ConstraintLayout> 

And code for my menu:

    <?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/fragment_menu_lists"         android:title="Handlelister"         android:icon="@drawable/ic_format_list_bulleted_black_24dp"         android:actionLayout="@layout/menu_item_lists"         app:showAsAction="ifRoom|withText" />     <item android:id="@+id/fragment_menu_stores"         android:title="Butikker"         android:icon="@drawable/ic_map_black_24dp"         app:showAsAction="ifRoom|withText"/>     <item android:id="@+id/fragment_menu_profile"         android:title="Profil"         android:icon="@drawable/ic_person_outline_black_24dp"         app:showAsAction="ifRoom|withText"     /> </menu> 

The code where I tried to create my own action layout if relevant:

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/relativeLayout"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:orientation="vertical">      <ImageView         android:id="@+id/imageView"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_marginStart="24dp"         android:layout_marginEnd="28dp"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent"         app:layout_constraintTop_toTopOf="parent"         app:srcCompat="@drawable/ic_format_list_bulleted_black_24dp" />      <TextView         android:id="@+id/textView"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_marginTop="8dp"         android:text="Handlelister"         app:layout_constraintEnd_toEndOf="parent"         app:layout_constraintStart_toStartOf="parent"         app:layout_constraintTop_toBottomOf="@+id/imageView" /> </androidx.constraintlayout.widget.ConstraintLayout> 
</div
        

Список ответов

2
 
vote
vote
Лучший ответ
 

Я выяснил способ сделать это после завершения:

вместо использования

 <код> android:actionLayout="@layout/menu_item_lists"   

Я использовал:

 <код> app:actionLayout="@layout/menu_item_lists"   

Мне пришлось добавить onclickListener на меню - элементы:

 <код> override fun onCreateOptionsMenu(menu: Menu?): Boolean {         val inflater = menuInflater         inflater.inflate(R.menu.menu_bottom_navigation, menu)          val navController = findNavController(R.id.activity_main_nav_host_fragment)          menu?.findItem(R.id.fragment_menu_lists)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_lists)         }          menu?.findItem(R.id.fragment_menu_stores)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_stores)         }          menu?.findItem(R.id.fragment_menu_profile)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_profile)         }          return super.onCreateOptionsMenu(menu)     }   
 

I figured out a way to do it afterall:

Instead of using

android:actionLayout="@layout/menu_item_lists" 

I used:

app:actionLayout="@layout/menu_item_lists" 

I then had to add onClickListener on the menu-items:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {         val inflater = menuInflater         inflater.inflate(R.menu.menu_bottom_navigation, menu)          val navController = findNavController(R.id.activity_main_nav_host_fragment)          menu?.findItem(R.id.fragment_menu_lists)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_lists)         }          menu?.findItem(R.id.fragment_menu_stores)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_stores)         }          menu?.findItem(R.id.fragment_menu_profile)?.actionView?.setOnClickListener {             navController.navigate(R.id.fragment_menu_profile)         }          return super.onCreateOptionsMenu(menu)     } 
</div
 
 
0
 
vote

Это поведение по умолчанию DOWELAPPBAR, чтобы сделать текст видимый приведенный ниже атрибут на DOWELAPPBAR

 <код> app:labelVisibilityMode="labeled"   
 

Thats the default behaviour of BottomAppBar, to make text visible put below attribute to BottomAppBar

app:labelVisibilityMode="labeled" 
</div
 
 
 
 

Связанный проблема

4  Как получить местное видео URI для Exoplayer 2.x  ( How to get local video uri for exoplayer 2 x ) 
У меня есть видеофайл Dog.mp4 в res/raw папка, который я хочу играть с экзоплом. Я пытаюсь выяснить, как получить видео URI для этой строки кода из Руководс...

0  ONITEMSELUCTERLISTENER не выходит, когда я выбираю то же предыдущее значение  ( Onitemselectedlistener is not fired when i select the same previous value ) 
Когда я снова выбираю то же значение, которое в адаптере значения не обновляются и даже OnitEmseLectedListener или NothingsElected не выдержаны Вот следует ...

2  Держите текущую страницу, представленную, пока на следующей странице не загружена  ( Keep current page rendered until the next page is loaded ) 
У меня есть простое приложение, которое основано на WebView.loadurl (« http://www.example.com "). Когда пользователь нажимает на URL, поведение по умолчани...

0  Кэшинга не работала на работе при добавлении интернет-соединения перехвата (модернизация 2 - Android)  ( Caching didnt work work when adding internet connection interceptor retrofit 2 ) 
Я пытаюсь реализовать интернет-соединение перехватчика с кэшированием с помощью модернизации и OKHTTP. Кэширование работает нормально, не добавляя интернет-...

1  Первое приложение для Android после Eclipse Установить  ( First app for android after eclipse install ) 
Я искал вокруг и не могу найти точную ситуацию или ответить, что мне нужно, поэтому мне придется задать вопрос, что я уверен, что где-то просил там, поэтому м...

0  Android-студия «Приложения имеют одинаковое имя пакета»  ( Android studio applications have the same package name ) 
Мое приложение в Android Studio имеет отдельные компоненты для мобильных устройств и для очков Google. Когда я пытаюсь загрузить мобильную версию на Nexus 10 ...

2  Распознавание речи Android не подключено к службе распознавания  ( Android speech recognizer not connected to the recognition service ) 
Я хочу ввести функцию постоянного распознавания голоса в моем приложении Android. Я осознаю тот факт, что распознавание голоса время от времени зависает от ...

1  Обновить и загрузить один конкретный фрагмент предыдущего действия  ( Refresh and load one particular fragment of the previous activity ) 
У меня есть 3 фрагмента в активности. Один из фрагментов отображает список предметов вместе с ценой и количеством. При выборе любого элемента появится новое д...

2  Как поставить один за один звонок на удержание? [закрыто]  ( How to put one by one call on hold ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

9  Phone Gam [Ошибка] CMD: Команда не удалась с помощью выхода кода Enoent  ( Phone gap error cmd command failed with exit code enoent ) 
Я пытаюсь получить разрыв на телефоне работать на Android, и моя команда выводит следующее: <код> phonegap build android [phonegap] detecting Android SDK en...

6  Android Gridlayout API 21  ( Android gridlayout api 21 ) 
Я пытаюсь сделать что-то вроде этого: В настоящее время я вручную устанавливаю ширину плиток, равных половине ширины экрана. Это работает хорошо, но он д...

25  Почему приложение умирает случайным образом?  ( Why application is dying randomly ) 
Я разрабатываю приложение для музыкального проигрывателя. Все работает нормально, за исключением внезапно умирает приложение. Иногда это происходит, когда при...

6  Как использовать OnDateChangedListener, OnDatesetListener без использования DatePickerDialog?  ( How to use ondatechangedlistener ondatesetlistener without using datepickerdial ) 
Я хочу иметь возможность обнаруживать изменения в DatePicker, как только пользователь начинает менять его. Однако я не хочу использовать datrpickerdialog. Кто...

-1  Как изменить странные и даже пункты меню переполнения меню  ( How to change odd and even overflow menu items background ) 
Как изменить странные и даже переполнить пункты меню фон в Android? ...

2  Как получить направление на кратчайший путь внешнего круга в Google Maps Android, когда мое текущее местоположение находится внутри 2 или более кругов?  ( How to get direction to the shortest path outside circle in google maps android ) 
Как получить направление к ближайшему расположению внешний круг, если голубые точки - текущее местоположение? 1 [ 1 и как отображать маркеры только во...

Связанный проблема

4  Как получить местное видео URI для Exoplayer 2.x 
0  ONITEMSELUCTERLISTENER не выходит, когда я выбираю то же предыдущее значение 
2  Держите текущую страницу, представленную, пока на следующей странице не загружена 
0  Кэшинга не работала на работе при добавлении интернет-соединения перехвата (модернизация 2 - Android) 
1  Первое приложение для Android после Eclipse Установить 
0  Android-студия «Приложения имеют одинаковое имя пакета» 
2  Распознавание речи Android не подключено к службе распознавания 
1  Обновить и загрузить один конкретный фрагмент предыдущего действия 
2  Как поставить один за один звонок на удержание? [закрыто] 
9  Phone Gam [Ошибка] CMD: Команда не удалась с помощью выхода кода Enoent 
6  Android Gridlayout API 21 
25  Почему приложение умирает случайным образом? 
6  Как использовать OnDateChangedListener, OnDatesetListener без использования DatePickerDialog? 
-1  Как изменить странные и даже пункты меню переполнения меню 
2  Как получить направление на кратчайший путь внешнего круга в Google Maps Android, когда мое текущее местоположение находится внутри 2 или более кругов? 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.