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

BottomSheetBehavior is not work when design library update to 24.2.0

BottomSheetBehavior 在

中正常工作
compile 'com.android.support:design:24.1.1'

但是当我更新到 24.2.0 时,work.Is 这不是一个错误吗? 这是我的代码:

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

2016 年 8 月 30 日更新

解释了 STATE_HIDDENSTATE_COLLAPSED 之间的区别以及如何在 com.android.support:design:24.2.0 中正确使用两者。

截至 2016 年 8 月 20 日

尽管这似乎是 com.android.support:design:24.2.0 的错误,您可以使用 BottomSheetBehavior.STATE_HIDDEN:

暂时解决它
mBehavior.setHideable(true);
mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);

这仍然会用动画关闭底部 sheet。

我不确定 STATE_COLLAPSEDSTATE_HIDDEN 之间的实际区别是什么,而且 documentation 的用处不大,但在它真正修复之前我认为 STATE_HIDDEN 没问题。

STATE_COLLAPSED : 隐藏底部的一部分 sheet

STATE_HIDDEN : 隐藏完整底部 sheet

在 Support Library 24.2.0 中,您必须设置 peek 高度以指示您希望底部 sheet 在折叠时显示多少像素。

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

mBottomSheetBehavior.setPeekHeight(0);

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

或者您可以根据需要让它消失,使用如下代码:

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