2016-09-14 9 views
5

Mam dolny arkusz z jego wysokością i szerokością ustawioną na match_parent. Więc gdy na przycisku kliknij ustawić zachowanie do STATE_EXPANDED tak:Zrozumienie zachowania BottomSheet Collapsed vs Hidden

mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 

My Bottomsheet jest zdefiniowana jak poniżej:

<FrameLayout 
     android:id="@+id/bottom_sheet" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clickable="true" 
     android:elevation="@dimen/design_appbar_elevation" 
     app:behavior_hideable="true" 
     app:layout_behavior="@string/bottom_sheet_behavior"> 

     <include 
      android:id="@+id/bottom_sheet_content" 
      layout="@layout/bottomsheet_layout" /> 

    </FrameLayout> 

mam stany monitoringu z BottomSheet callbacków.

  • Klikam na przycisk i dolny arkusz rozwinięty do pełnego ekranu.
  • Jego bieżącym stanem jest STATE_EXPANDED
  • Szybko przesuń palcem w dół na dolnym arkuszu. (Nie w pełni przeciągnąć aż zamknięte, proste przesuń w dół jak przewijanie)
  • zatrzyma się na środku, a jego stan jest rejestrowany jako STATE_COLLAPSED
  • Gdybym przesuń ponownie to wszystko ma, a jego stan jest STATE_HIDDEN

Nie rozumiem, dlaczego zatrzymuje się w środku. Jak mogę go ukryć za pomocą jednego machnięcia.

Próbowałem tego, ustawiając peek_height na 0dp. Dzięki temu nigdy nie natrafi na STATE_HIDDEN. Po ukryciu jego stan staje się STATE_COLLAPSED. Po prostu nie rozumiem tych stanów.

Jak uzyskać STATE_HIDDEN jednym pociągnięciem w dół?

Odpowiedz

4

Trochę za późno, ale natknąłem się na to, szukając czegoś podobnego.

ten sposób można pominąć zgniecionym stanie:

w XML dodając app:behavior_skipCollapsed="true" do widoku BottomSheet.

LUB

Programowo z setSkipCollapsed(boolean).

Powiązane problemy