我有一个带有约束布局的
BottomSheetDialogFragment
布局,并且约束布局有一个 NumberPicker
。 NumberPicker
滚动正常,但如果用户滚动到选择器之外,BottomSheet
会移动,这是我不希望的。我该如何阻止这个。
基本上,当用户拖动白色部分时,我不希望
BottomSheetDialogFragment
被向下拖动。
如果您有解决方案,请告诉我。
谢谢。
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
。