Как заставить BottomNavigationView прокручивать Android, когда значков больше, чем уместится, без их сжатия? - PullRequest
0 голосов
/ 07 января 2020

У меня есть панель навигации с тремя вкладками.

Nav bar - 3 tabs

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

Nav bar - 4 tabs

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Это можно использовать для отображения текста и значков в BottomNevigationView для 3–5 элементов и прекращения смещения.

    app:labelVisibilityMode="labeled"

1. Добавьте эту строку кода в BottomNevigationView, как показано

    <android.support.design.widget.BottomNavigationView
     android:id="@+id/bottom_navigation"
     android:layout_width="match_parent"
     android:layout_height="@dimen/seventy_dp"
     android:layout_semitransparent="true"
     android:background="@color/colorBottomNev"
     android:showAsAction="always|withText"
     app:itemIconTint="@drawable/bottom_navigation_colors"
     app:itemTextColor="@drawable/bottom_navigation_colors"
     app:itemTextAppearanceActive="@style/BottomNavigationViewTextStyle"
     app:itemTextAppearanceInactive="@style/BottomNavigationViewTextStyle"
     app:menu="@menu/bottom_navigation_menu"
     app:labelVisibilityMode="labeled"/>

2. Добавьте пункты меню следующим образом: -

<?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/action_catalogue"
        android:icon="@drawable/catalogue"
        android:title="@string/catalogue"
        android:enabled="true"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_contracts"
        android:icon="@drawable/contract"
        android:title="@string/contracts"
        android:enabled="true"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_prospects"
        android:icon="@drawable/prospect"
        android:title="@string/prospects"
        android:enabled="true"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_performance"
        android:icon="@drawable/performance"
        android:title="@string/performance"
        android:enabled="true"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_advance"
        android:icon="@drawable/advance"
        android:title="@string/advance"
        android:enabled="true"
        app:showAsAction="ifRoom" />

</menu>

3. Добавьте этот стиль в стиле. xml file:

     <style name="BottomNavigationViewTextStyle">
                <item name="android:fontFamily">@font/montmedium</item>
                <item name="android:textSize">10sp</item>
                <item name="android:duplicateParentState">true</item>
                <item name="android:ellipsize">end</item>
                <item name="android:maxLines">1</item>
       </style>

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <dimen name="design_bottom_navigation_text_size" tools:override="true">10sp</dimen>
    <dimen name="design_bottom_navigation_active_text_size" tools:override="true">10sp</dimen>
</resources>
0 голосов
/ 08 января 2020

setLabelVisibilityMode дает возможность постоянного отображения метки на элементах.

BottomNavigationView не допускает прокрутку, поскольку она соответствует рекомендациям по разработке .

Не надо.

Назначения нижней навигационной панели не прокручиваются.

Если бы вы были настойчивы, вы могли бы создать подобный дизайн, используя RadioGroup и серию кнопок ToggleButton, похожих на этот ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...