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>
STATE_COLLAPSED:下部シートの一部を非表示にします
STATE_HIDDEN:完全なボトムシートを非表示にします
サポートライブラリ24.2.0では、折りたたんだときに下部シートに表示するピクセル数を示すために、ピークの高さを設定する必要があります。
したがって、折りたたんで非表示にする場合は、BottomSheetBehaviorを初期化した後で次のようなコードを追加できます。
mBottomSheetBehavior.setPeekHeight(0);
つまり、一番下のシートが折りたたまれると、その高さの0ピクセルが表示されます。
または、必要に応じて非表示にすることもできます。次のようなコードを使用してください。
mBottomSheetBehavior.setHideable(true);
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
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
だと思います。大丈夫です。