FlexBoxLayoutManager в BottomSheetDialogFragment - PullRequest
0 голосов
/ 16 марта 2020

У меня есть FlexBoxLayoutManager в качестве менеджера для RecyclerView в BottomSheetDialogFragment. Первое состояние . Затем я прокручиваю его вверх. Второе состояние . Но когда я прокручиваю его вниз, первая строка не отображается (не прокручивается до). Третье состояние . Но если я вместо этого переключаю прокрутку, все работает нормально.

Вопросы: что мне делать, чтобы получить правильное поведение прокрутки?

Макет BottomSheetDialogFragment

<LinearLayout 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="wrap_content"
    android:orientation="vertical">

    <include layout="@layout/sort_dialog_header"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/warm_grey" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/app_background_color"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="14dp"
            android:layout_marginTop="26dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:lineSpacingExtra="-1sp"
                android:text="Sizes from my\npreferences"
                android:textColor="@color/textColorPrimary"
                android:textSize="16sp" />

            <View
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="1" />

            <TextView
                android:id="@+id/editTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="15dp"
                android:textColor="#ed2e7e"
                android:textSize="13sp"
                android:padding="@dimen/padding_smallest"
                android:text="Edit" />
        </LinearLayout>

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/mySizesLayout"
            android:layout_marginTop="16dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:nestedScrollingEnabled="false"
            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            tools:itemCount="3"
            tools:listitem="@layout/item_filter_refinement_option" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="14dp"
            android:layout_marginBottom="24dp"
            android:layout_marginTop="16dp"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                android:layout_gravity="center_vertical"
                android:textColor="#363636"
                android:lineSpacingExtra="1sp"
                android:text="Use all my sizes" />

            <View
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="1" />

            <Switch
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="15dp"
                android:textColor="#ed2e7e"
                android:checked="true"
                android:theme="@style/SwitchButton"
                android:textSize="13sp" />
        </LinearLayout>
    </LinearLayout>


    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/optionRecyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingStart="12dp"
        android:paddingEnd="12dp"
        android:fillViewport="true"
        app:layoutManager="com.google.android.flexbox.FlexboxLayoutManager"
        tools:listitem="@layout/item_filter_refinement_option" />
</LinearLayout>
...