当设计库更新到 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_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);
这仍然会用动画关闭底部 sheet。
我不确定 STATE_COLLAPSED
和 STATE_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);
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_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);
这仍然会用动画关闭底部 sheet。
我不确定 STATE_COLLAPSED
和 STATE_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);