popwindow顯示出現黑色閃屏效果
阿新 • • 發佈:2019-01-06
在用popwindow時,如果退出當前activity時閃現了一下黑屏,但是程式也是正常的,並沒有崩潰,這裡的問題在於消失時並沒有清除所有的flag
在show的時候添加了背景的陰影效果,如果在複寫onDismiss方法中用如下: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); } }
@Override
public void onDismiss() {
// 設定背景顏色變亮
WindowManager.LayoutParams lp = mContext.getWindow().getAttributes();
lp.alpha = 1.0f;
mContext.getWindow().setAttributes(lp);
onDessmissTo();
}
就會出現黑色閃屏,正常用法如下:
@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); onDessmissTo(); }
這句話
mContext.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
必須要呼叫,達到清除背景黑色閃屏的情況