BottomSheetDialog виден снизу даже в скрытом состоянии Android 10 - PullRequest
0 голосов
/ 27 апреля 2020

screen1

Объяснение изображения: -

  1. Кнопка входа = Отображение вида входа в систему
  2. Кнопка регистрации = Показать представление регистрации
  3. Нижний лист забыл пароль

(Изображение отредактировано, чтобы скрыть логотипы)

Проблема = BottomSheetFragment виден внизу Протестированные устройства = Samsung, RealMe = оба с android 10

XML страницы приветствия

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".welcome.Welcome">

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

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

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

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

</androidx.coordinatorlayout.widget.CoordinatorLayout>

xml с использованием кода во всех фрагментах

app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="@string/bottom_sheet_behavior"

Также реализовано это theme, чтобы иметь нестандартный дизайн листа и иметь невидимый фон листа по умолчанию

<style name="AppBottomSheetTheme" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/AppModalStyle</item>
</style>

<style name="AppModalStyle" parent="Widget.Design.BottomSheet.Modal">
    <item name="android:background">@color/trans</item>
    <item name="behavior_hideable">true</item>
    <item name="behavior_peekHeight">500dp</item>
</style>

Также пробовал это в welcome class

//using kotlin
forgotSheetBehavior.isHideable = true
forgotSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN

Все еще вижу BottomSheetDialogFragment внизу, это не видно в эмуляторе пикселя с android 10

1 Ответ

0 голосов
/ 30 апреля 2020

По какой-то причине

Мне нужно было использовать BottomSheetBehaviour на каждом BottomSheetDialogFragment, чтобы скрыть их при запуске

//using kotlin
forgotSheetBehavior.isHideable = true
forgotSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN

После использования BottomSheetBehaviour на каждом SheetFragment и называя это onCreate() решить проблему

...