14

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

2 回答 2

39

STATE_COLLAPSED :隐藏底部工作表的一部分

STATE_HIDDEN :隐藏完整的底页

在支持库 24.2.0 中,您必须设置窥视高度以指示您希望底部工作表在折叠时显示多少像素。

因此,如果您希望它被折叠和隐藏,您可以在初始化 BottomSheetBehavior 后添加如下代码:

mBottomSheetBehavior.setPeekHeight(0);

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

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

mBottomSheetBehavior.setHideable(true);
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
于 2016-08-21T07:54:32.490 回答
5

2016 年 8 月 30 日更新

接受的答案解释了两者之间的区别STATE_HIDDEN以及STATE_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);

这仍然会用动画关闭底部工作表。

我不确定STATE_COLLAPSED和之间的实际区别STATE_HIDDEN是什么,并且文档没有什么帮助,但在它真正修复之前我认为STATE_HIDDEN还可以。

于 2016-08-20T17:36:26.513 回答