Как обрабатывать скрытие Bottom Navigation View при прокрутке, когда фрагмент под ним меняет состояние с прокручиваемого на не прокручиваемый? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть MainActivity, которая является просто макетом координатора и BottomNavigationView.Макет координатора действует как контейнер для фрагмента.Внутри фрагмента есть представление прокрутки, которое изначально не прокручивается, но после нажатия кнопок содержимое расширяется и становится прокручиваемым.

Теперь, в соответствии с рекомендациями по дизайну материалов, я реализовал поведение «Нижняя полоса», при котором оно исчезает при прокрутке вниз.Но когда я уменьшаю высоту содержимого внутри, так что представление прокрутки снова не прокручивается, нижняя панель остается скрытой.Есть ли прямой способ заставить нижнюю панель узнать, находится ли содержимое в состоянии с прокруткой или нет?

См. Изображения для справки

https://i.stack.imgur.com/NO0Ai.jpg
https://i.stack.imgur.com/JuPLA.jpg
https://i.stack.imgur.com/jZNFb.jpg

MainActivity XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
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/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main.MainActivity">

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="58dp"
    android:layout_gravity="bottom"
    android:background="@color/colorBottomBar"
    app:itemIconTint="@drawable/selector_menu"
    app:itemTextColor="@drawable/selector_menu"
    app:menu="@menu/menu_bottom"
    app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
    />


</android.support.design.widget.CoordinatorLayout>

Фрагмент инсайдерского контейнера:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            android:orientation="vertical">


            <android.support.constraint.ConstraintLayout
                android:id="@+id/constraintGeneralInformation"
                android:layout_width="match_parent"
                android:layout_height="172dp"
                android:layout_marginStart="13dp"
                android:layout_marginTop="13dp"
                android:layout_marginEnd="13dp"
                android:background="@color/colorBackgroundLightBlue">

                <ImageView
                    android:id="@+id/icon1"
                    android:layout_width="87dp"
                    android:layout_height="50dp"
                    android:paddingStart="20dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                     />

                <TextView
                    android:id="@+id/title1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="15dp"
                    android:paddingStart="20dp"
                    android:text="a"
                    android:textAllCaps="true"
                    android:textColor="@android:color/white"
                    android:textSize="17sp"
                    app:layout_constraintBottom_toBottomOf="@+id/icon1"
                    app:layout_constraintStart_toEndOf="@+id/icon1" />

                <ImageView
                    android:id="@+id/arrow1"
                    android:layout_width="35dp"
                    android:layout_height="35dp"
                    android:layout_marginEnd="10dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_arrow_down" />

            </android.support.constraint.ConstraintLayout>

            <android.support.constraint.ConstraintLayout
                android:id="@+id/constraintGeneralInformationExpansion"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginStart="13dp"
                android:layout_marginEnd="13dp"
                android:background="@drawable/border_start_end_bottom">

            </android.support.constraint.ConstraintLayout>

            <android.support.constraint.ConstraintLayout
                android:id="@+id/constraintTechnicalSkills"
                android:layout_width="match_parent"
                android:layout_height="172dp"
                android:layout_marginStart="13dp"
                android:layout_marginTop="10dp"
                android:layout_marginEnd="13dp"
                android:background="@color/colorBackgroundLightBlue">

                <ImageView
                    android:id="@+id/icon2"
                    android:layout_width="87dp"
                    android:layout_height="50dp"
                    android:paddingStart="20dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                     />

                <TextView
                    android:id="@+id/title2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="15dp"
                    android:paddingStart="20dp"
                    android:text="b"
                    android:textAllCaps="true"
                    android:textColor="@android:color/white"
                    android:textSize="17sp"
                    app:layout_constraintBottom_toBottomOf="@+id/icon2"
                    app:layout_constraintStart_toEndOf="@+id/icon2" />

                <ImageView
                    android:id="@+id/arrow2"
                    android:layout_width="35dp"
                    android:layout_height="35dp"
                    android:layout_marginEnd="10dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_arrow_down" />
            </android.support.constraint.ConstraintLayout>

            <android.support.constraint.ConstraintLayout
                android:id="@+id/constraintOthers"
                android:layout_width="match_parent"
                android:layout_height="172dp"
                android:layout_marginStart="13dp"
                android:layout_marginTop="10dp"
                android:layout_marginEnd="13dp"
                android:background="@color/colorBackgroundLightBlue">

                <ImageView
                    android:id="@+id/icon3"
                    android:layout_width="87dp"
                    android:layout_height="50dp"
                    android:paddingStart="20dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                     />

                <TextView
                    android:id="@+id/title3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="15dp"
                    android:paddingStart="20dp"
                    android:text="c"
                    android:textAllCaps="true"
                    android:textColor="@android:color/white"
                    android:textSize="17sp"
                    app:layout_constraintBottom_toBottomOf="@+id/icon3"
                    app:layout_constraintStart_toEndOf="@+id/icon3" />

                <ImageView
                    android:id="@+id/arrow3"
                    android:layout_width="35dp"
                    android:layout_height="35dp"
                    android:layout_marginEnd="10dp"
                    android:tint="@android:color/white"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_arrow_down" />

            </android.support.constraint.ConstraintLayout>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>

</android.support.constraint.ConstraintLayout>
...