在用popwindow时,如果退出当前activity时闪现了一下黑屏,但是程序也是正常的,并没有崩溃,这里的问题在于消失时并没有清除所有的flag
- public void show(View view) {
- if (mPopupWindow != null && !mPopupWindow.isShowing()) {
- // 设置显示动画
- // mPopupWindow.setAnimationStyle(R.style.anim_pop_slide);
- mPopupWindow.showAsDropDown(view);
- // 设置背景颜色变暗
- WindowManager.LayoutParams lp = mContext.getWindow()
- .getAttributes();
- lp.alpha = 1f;
- mContext.getWindow().addFlags(
- WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- mContext.getWindow().setAttributes(lp);
- }
- }
在show的时候添加了背景的阴影效果,在复写onDismiss方法中如下使用:
- @Override
- public void onDismiss() {
- // 设置背景颜色变亮
- WindowManager.LayoutParams lp = mContext.getWindow().getAttributes();
- lp.alpha = 1.0f;
- mContext.getWindow().setAttributes(lp);
- mContext.getWindow().clearFlags(
- WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- }
起作用的代码:
- mContext.getWindow().clearFlags(
- WindowManager.LayoutParams.FLAG_DIM_BEHIND);