我已经实现了一个BottomSheet对话框,我希望当用户在偷看时(未完全展开状态)触摸底部外面时防止底片消失.
我已经设置dialog.setCanceledOnTouchOutside(false);了代码,但它似乎没有任何影响.
这是我的BottomSheetDialogFragment类:
public class ShoppingCartBottomSheetFragment extends BottomSheetDialogFragment {
private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_HIDDEN) {
dismiss();
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
};
@Override
public void setupDialog(Dialog dialog, int style) {
super.setupDialog(dialog, style);
View contentView = View.inflate(getContext(), R.layout.fragment_shopping_cart_bottom_sheet, null);
dialog.setCanceledOnTouchOutside(false);
dialog.setContentView(contentView);
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) contentView.getParent()).getLayoutParams();
CoordinatorLayout.Behavior behavior = params.getBehavior();
if( behavior != null && behavior …Run Code Online (Sandbox Code Playgroud) 我Fragment在我的应用程序中显示了一个DialogFragment.
我在片段中有一个关闭对话框的按钮.但是当我显示dialogFragment时,对话框外部的触摸什么都不做,我无法单击对话框片段外的按钮.
如何为DialogFragment提供外部触摸?