Tôi có một trang tính đáy có chiều cao và chiều rộng được đặt thành match_parent
. Vì vậy, khi vào nút bấm tôi đặt hành vi để STATE_EXPANDED
như thế này:Hiểu hành vi BottomSheet bị sập và ẩn
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
My Bottomsheet được định nghĩa như sau:
<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>
Tôi đang theo dõi trạng thái với BottomSheet Callback.
- Tôi nhấp vào nút và trang tính được mở rộng đến toàn màn hình.
- Trạng thái hiện tại của nó là
STATE_EXPANDED
- Tôi nhanh chóng vuốt xuống trên trang tính dưới cùng. (Không kéo đầy đủ cho đến khi nó đóng cửa, swipe đơn giản xuống như di chuyển)
- Nó dừng lại ở giữa và trạng thái của nó được ghi lại như
STATE_COLLAPSED
- Nếu tôi vuốt một lần nữa nó là tất cả đã biến mất và trạng thái của nó là
STATE_HIDDEN
Tôi không hiểu tại sao nó dừng lại ở giữa. Làm thế nào tôi có thể làm cho nó ẩn với một swipe duy nhất.
Tôi đã thử điều đó bằng cách đặt peek_height
thành 0dp
. Bằng cách này, nó không bao giờ gặp STATE_HIDDEN
. Khi bị ẩn, trạng thái của nó sẽ trở thành STATE_COLLAPSED
. Tôi không hiểu tiểu bang này.
Làm cách nào để đạt được STATE_HIDDEN
bằng một lần vuốt xuống?