AlertDialog彈出訊息後,背景色透明,不影響Activity的事件觸發
阿新 • • 發佈:2018-12-11
背景色透明:
// 背景色
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(); } });