1. 程式人生 > >AlertDialog彈出訊息後,背景色透明,不影響Activity的事件觸發

AlertDialog彈出訊息後,背景色透明,不影響Activity的事件觸發

背景色透明:
//        背景色
        dialog.getWindow().setDimAmount(0f);
不搶佔Activity焦點:
//      dialog不去搶佔焦點
        dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
LayoutInflater inflater = LayoutInflater.from(HomeActivity.this);
        RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.news_layout_9, null);
        final AlertDialog.Builder builder = new AlertDialog.Builder(HomeActivity.this, R.style.dialogNoBg);
        //通過setView設定我們自己的佈局
        builder.setView(layout);
        dialog = builder.create();
//        背景色
        dialog.getWindow().setDimAmount(0f);
//        寬高和位置      
        dialog.getWindow().setLayout(DensityUtil.dp2px(350), LinearLayout.LayoutParams.WRAP_CONTENT);
        dialog.getWindow().setGravity(Gravity.TOP);
//      dialog不去搶佔焦點
        dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
//      HomeActivity.this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
        dialog.setCanceledOnTouchOutside(true);
        dialog.show();
//        跳轉到訊息頁面
        layout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ******************************
                dialog.dismiss();

            }
        });