BottomSheet скрывается при изменении внешнего содержимого - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть группа просмотра с BottomSheetBehaviour из MaterialComponents (содержимое листа является интерактивным, скрываемым)

Макет, включенный в родительский (CooridnatorLayout)

<include
   android:id="@+id/filters_sheet"
   layout="@layout/station_filters"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="bottom"
   app:behavior_hideable="true"
   app:behavior_peekHeight="48dp"
   app:behavior_skipCollapsed="true"
   app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"/>

Содержимое листа имеет 2 переключателякомпоненты (для фильтрации списка за листом)

<androidx.constraintlayout.widget.ConstraintLayout 
    android:id="@+id/filter_sheet"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:layout_gravity="bottom"
    android:background="@drawable/filters_sheet_background"
    android:elevation="@dimen/small_space">

    <Switch
        android:id="@+id/station_filter_only_available"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/space"
        android:padding="@dimen/space"
        android:text="@string/station_filter_only_available" />

    <Switch
        android:id="@+id/station_filter_with_partners"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="@dimen/space"
        android:text="@string/station_filter_with_partners"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Теперь каждый раз, когда я нажимаю на любой переключатель фильтра, список обновляется (путем запуска нового значения для активных данных), но лист исчезает, но внутреннее состояниеBottomSheetBehaviour по-прежнему STATE_EXPANDED.

Это ошибка в библиотеке (com.google.android.material: material: 1.0.0) или я что-то упустил?

Спасибо

station_filter_only_available.setOnCheckedChangeListener { _, isChecked ->
   if (parentViewModel.stationFilters.value != null) {
       parentViewModel.stationFilters.value = parentViewModel.stationFilters.value!!.copy(onlyAvailable = isChecked)
   }
}
...