Android NavigationView: не показывать полный элемент и не усекать

Проблема: NavigationView не показывает полный текст элемента меню, а также не обрезает текст.

Этот пункт я вижу правильно - два слова "Маленький заголовок":

<item
android:id="@+id/example1"
android:icon="@drawable/filter_2"
android:title="Small title"
android:checked="false"
app:actionLayout="@layout/menu_counter" />
/>

И со следующим элементом - я вижу только первые два слова "Small title" без усечения следующего слова "andveryverylongword":

<item
android:id="@+id/example2"
android:icon="@drawable/filter_2"
android:title="Small title andveryverylongword"
android:checked="false"
app:actionLayout="@layout/menu_counter" />
/>

Виджет:

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
ndroid:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"/>

Также: AndroidStudio 1.5, библиотека поддержки.

ОТРЕДАКТИРОВАНО: Вот пример стандартного проекта "Действие навигационного ящика" в Android Studio.

activity_main_drawer.xml: меню

в мобильном: не вижу длинное слово


person DQuade    schedule 24.02.2016    source источник


Ответы (2)


Я только что получил эту работу * Переопределите design_navigation_item.xml и измените его, чтобы использовать android:layout_height="wrap_content" android:minHeight="?android:listPreferredItemHeightSmall"

  • Переопределите design_navigation_menu_item.xml, чтобы использовать maxLines=2

Вроде круто, я не могу поверить, что это работает. Спасибо парню из stackoverflow, который рассказал о переопределении размера значка, что помогло мне думать в этом направлении.

person nAndroid    schedule 12.03.2016
comment
У меня есть аналогичная проблема, описанная в stackoverflow.com/questions/36157300/. Не могли бы вы предоставить дополнительную информацию о переопределении файла design_navigation_menu_item.xml? - person Aleksander Mielczarek; 22.03.2016
comment
@AleksanderMielczarek Просто скопируйте и вставьте код из файла:/usr/local/google/buildbot/src/googleplex-android/mnc-supportlib-release/frameworks/support/design/res/layout/design_navigation_menu_item.xml в новый design_navigation_menu_item. .xml, который вы создаете в своем каталоге /rest/layout, а затем изменяете то, что вам нужно. Найдите исходный код по мере необходимости, чтобы увидеть, нужно ли вам переопределить подзаголовок или что-то еще. Я до сих пор не понял составной рисунок, если его можно выровнять слева вверху, как маркер, а не по центру. - person nAndroid; 23.03.2016

Добавьте app:itemMaxLines="2" в NavigationView вашего макета. Это сработало для меня.

<com.google.android.material.navigation.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="end"
            app:itemMaxLines="2"
            android:background="@color/background_color"
            app:headerLayout="@layout/nav_header_main"
            app:menu="@menu/activity_main_drawer" />
person Ahsan Ullah Rasel    schedule 12.08.2020