首先放上XML
主界面和滑动部分的页面是放在一起的,在你需要滑动的view里面加上
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
这么一行就让界面带上了滑动效果。但是这样是不够的,首先要知道,BottomSheet是有这几个状态的:
所以我们要加上这两条属性:
app:behavior_hideable="false"
app:behavior_peekHeight="150dp"
第一条使它不可隐藏,第二条使它能露出一点点让你拖动。
所以,就要通过BottomSheetBehavior的回调函数控制按钮的状态,回避这个bug
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if(newState==STATE_EXPANDED){
button.setClickable(false);
}
if(newState==STATE_COLLAPSED){
button.setClickable(true);
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
以上。