material-components / material-components/material-components-android

[BottomSheetDialogFragment] Top inset impossible to remove

Offen
#3,389 11 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug Widget: BottomSheet
Vorherrschende Sprache
Java
Sterne
17.4k
Forks
3.2k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

**Description:** I am currently trying to create a fullscreen/full height `BottomSheetDialogFragment`, but since it has a very weird behavior implemented where it adds and retracts insets while the sheet is sliding in and out, I decided to disable any inset handling done by the component and manually take care of the insets. However, I found a problem with that approach as well. No matter what I try, the component still forces a top inset that is the same size of the status bar even when disabling any and all inset handling flags I could find checked in the component source code, ex.:

https://github.com/material-components/material-components-android/blob/46778db594edc5915987dcd6e737fa7d15414690/lib/java/com/google/android/material/bottomsheet/BottomSheetBehavior.java#L1726-L1734

The objective is for the component screen to fill the entire screen of the device, but as it currently is the top area of the status bar can never be covered, meaning the component will never display underneath the status bar as desired.

**Expected behavior:** Screenshots are attached,
- Screen 1 is meant to launch the component
![screen1 (25%)](https://github.com/material-components/material-components-android/assets/9222661/2d40a050-1d73-4efb-bcdc-6220b8495a76)

- Screen 2 is what is currently happening, notice the top area that cannot be covered
![screen2 (25%)](https://github.com/material-components/material-components-android/assets/9222661/d1cf466d-9103-428d-bc74-2805a24b9484)

- Screen 3 is what it should be looking like at the top (I created a separat activity just to represent how screen 2 should be looking)
![screen3 (25%)](https://github.com/material-components/material-components-android/assets/9222661/183e9f5c-a08c-495a-8017-460a0930338f)

**Source code:** Not applicable.

**Minimal sample app repro:** Sample follows attached.
[BottomSheetInsetBug.zip](https://github.com/material-components/material-components-android/files/11437611/BottomSheetInsetBug.zip)

**Android API version:** Any android version since 24 (7.0 Nougat) till most recent 33 (13.0). Tested all versions and every single one of them have the same issue.

**Material Library version:** Material Android Library version `com.google.android.material:material:1.8.0`

**Device:** Any real device and emulator tested.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in BottomSheetBehavior.java etwa bei den Zeilen 1726–1734 und reproduziere das Problem mit dem beigefügten Beispiel BottomSheetInsetBug.zip. Prüfe, wie sich die dokumentierten Flags zur Behandlung von Insets über die gemeldeten Android-API-Versionen hinweg auf den oberen Statusleisten-Inset auswirken. Als erledigt gilt die Aufgabe, wenn ein fullscreen BottomSheetDialogFragment den Bereich der Statusleiste abdecken kann, wenn die Behandlung von Insets deaktiviert ist, ohne das bestehende Sliding-Verhalten zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, java
Bereich
mobile-dev
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.