Android 点击穿透 dialog 设置外部响应事件点击穿透

674 阅读1分钟

view 设置

android:clickable="true"
android:focusable="true"

父布局

android:clickable="true"
android:focusable="true"

dialog 设置外部响应

        window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
        // ...but notify us that it happened.
//        window.setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
        window.setGravity(Gravity.TOP);
        window.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.lucency)));
        //window.setWindowAnimations(R.style.dialogTopAnim);

//        window.getDecorView().setOnTouchListener((v, event) -> {
//            if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
//                daClassifyListener.call();
//                dismiss();
//            }
//            return true;
//        });

外部阴影消耗