当devise库更新到24.2.0时,BottomSheetBehavior不起作用

BottomSheetBehavior正常工作

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

但是当我更新到24.2.0,这是行不通的。这是一个错误? 这是我的代码:

 <?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> 

Solutions Collecting From Web of "当devise库更新到24.2.0时,BottomSheetBehavior不起作用"

STATE_COLLAPSED:隐藏底部表单的一部分

STATE_HIDDEN:隐藏完整的底部表单

在支持库24.2.0中,您必须设置峰值高度来指示折叠时底部表单显示的像素数。

所以,如果你想要它被折叠和隐藏,你可以在初始化你的BottomSheetBehavior之后添加这样的代码:

 mBottomSheetBehavior.setPeekHeight(0); 

这意味着当底部纸张折叠时,其高度的0像素将被显示。

或者你可以让它消失,如果你需要,使用这样的代码:

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

2016年8月30日更新

接受的答案解释了STATE_HIDDENSTATE_COLLAPSED之间的STATE_HIDDEN ,以及如何正确使用com.android.support:design:24.2.0

截至2016年8月20日

虽然这似乎是com.android.support:design:24.2.0一个bug,但你可以通过使用BottomSheetBehavior.STATE_HIDDEN临时解决它:

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

这仍然会通过animationclosures底部表单。

我不确定STATE_COLLAPSEDSTATE_HIDDEN之间的实际区别是什么,并且文档不是很有帮助,但是直到实际修复之前,我认为STATE_HIDDEN没问题。