繁体   English   中英

布尔值返回false时禁用NestedScrollView

[英]Disable NestedScrollView when Boolean comes back false

我目前有一个带有ConstraintLayout和NestedScrollView的CoordinatorLayout。 NestedScrollView的窥视高度为50dp,仅是一个标题。 我希望能够在连接设备时拉起NestedScrollView,但是当它未连接时,我只希望能够看到窥视而不能够拖动其余视图。

 if(deviceConnected) { mBottomSheetText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); } else { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } } }); } else { //Want to prevent it form being draggable } 

DragCallback接口允许选择是否通过滚动到AppBarLayout来控制同级滚动视图。

您可以像下面这样:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() {
    @Override
    public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
        return false;
    }
});

通过始终返回false,您的滚动视图将不再受appbarLayout的控制。

注意:在调用此函数之前,应检查ViewCompat.isLaidOut(appBarLayout),否则params.getBehavior()将返回null。

检查此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM