带有可滚动视图的BottomSheetDialogFragment

问题描述 投票:0回答:1

我有一个带有约束布局的

BottomSheetDialogFragment
布局,并且约束布局有一个
NumberPicker
NumberPicker
滚动正常,但如果用户滚动到选择器之外,
BottomSheet
会移动,这是我不希望的。我该如何阻止这个。enter image description here

基本上,当用户拖动白色部分时,我不希望

BottomSheetDialogFragment
被向下拖动。

如果您有解决方案,请告诉我。

谢谢。

android bottom-sheet
1个回答
0
投票

您想使用

BottomSheetBehavior.setDraggable(boolean)
。对话框显示后,您可以访问bottomSheetBehavior。这是我的做法:

@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    var dialog = super.onCreateDialog(savedInstanceState);
    dialog.setOnShowListener(i -> {
        var bottomSheet = dialog.findViewById(R.id.design_bottom_sheet);
        bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
        bottomSheetBehavior.setDraggable(false);
    });
    return dialog;
}

来自文档:

注意:禁用拖动时,应用程序将需要实现 自定义方式来展开/折叠底部工作表。

另请注意:如果您无法访问

android.support.design.R.id.design_bottom_sheet
,请尝试
com.google.android.material.R.id.design_bottom_sheet

© www.soinside.com 2019 - 2024. All rights reserved.