2016-08-19 13 views
9

BottomSheetBehavior działać prawidłowo wBottomSheetBehavior nie działa, gdy projekt biblioteki aktualizacja 24.2.0

compile 'com.android.support:design:24.1.1' 

ale gdy go zaktualizować do 24.2.0, nie jest work.Is że to błąd? To jest mój kod:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    > 

    <LinearLayout 
     android:id="@+id/llScroll" 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:orientation="vertical" 
     android:background="@color/blue_1" 
     app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> 
    </LinearLayout> 

</android.support.design.widget.CoordinatorLayout> 
+0

„nie działa” nie jest wystarczająco dużo informacji, aby przejść off. * Jak * nie działa? – ianhanniballake

+0

kod .java –

+0

Mam ten sam problem. "Nie działa" oznacza, że ​​po prostu pokazuje się jako prosty układ bez oczekiwanego zachowania, mBottomSheetBehavior.setState (BottomSheetBehavior.STATE_COLLAPSED); już nie pracuj. TO NIE DZIAŁA. –

Odpowiedz

28

STATE_COLLAPSED: Ukrywa część dolnego arkusza

STATE_HIDDEN: Ukrywa kompletne dno blachy

Na poparcie Biblioteka 24.2.0, trzeba ustawić wysokość peek wskazać ile pikseli chcesz pokazać dolny arkusz po zwinięciu.

Więc jeśli ma to być zwinięte i ukrył, można dodać kod tak po zainicjowany swoją BottomSheetBehavior:

mBottomSheetBehavior.setPeekHeight(0); 

to znaczy, gdy dolny arkusz zwinięty, 0 piksel jego wysokość będzie pokazane.

lub Twoja może po prostu sprawiają, że znikają, jeśli trzeba, użyć kodu jak poniżej:

mBottomSheetBehavior.setHideable(true); 
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); 
+0

Nie próbowałem tego jeszcze, ale nie znajduję niczego w historii zmian w arkuszu dolnym: https://developer.android.com/topic/libraries/support-library/revisions.html – kirtan403

+0

Znalazłem, że setPeekHeight (0) jest najlepszym i najprostszym sposobem na przywrócenie starej funkcjonalności. – lionscribe

3

Updated 30 sierpnia 2016

The accepted answer wyjaśnia różnicę między STATE_HIDDEN i STATE_COLLAPSED i jak poprawnie używać zarówno w com.android.support:design:24.2.0.

Począwszy od 20 sierpnia 2016

Mimo to wydaje się być błąd z com.android.support:design:24.2.0, można tymczasowo obejść stosując BottomSheetBehavior.STATE_HIDDEN:

mBehavior.setHideable(true); 
mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); 

ten będzie nadal blisko dna arkusz z animacją.

Nie jestem pewien, co faktyczna różnica pomiędzy STATE_COLLAPSED i STATE_HIDDEN jest, a documentation jest mniejsza niż pomocne, ale dopóki to faktycznie stała myślę STATE_HIDDEN jest w porządku.

+0

Działa dla mnie! Dzięki! –

Powiązane problemy