相关疑难解决方法(0)

防止在外面触摸时解雇BottomSheetDialogFragment

我已经实现了一个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)

android bottom-sheet

18
推荐指数
4
解决办法
1万
查看次数

允许外部触摸DialogFragment

Fragment在我的应用程序中显示了一个DialogFragment.
我在片段中有一个关闭对话框的按钮.但是当我显示dialogFragment时,对话框外部的触摸什么都不做,我无法单击对话框片段外的按钮.

如何为DialogFragment提供外部触摸?

android android-dialogfragment

14
推荐指数
2
解决办法
9334
查看次数