情景问题:
最近有个需求:屏蔽Home键功能,于是我找度娘看看,刚开始觉得很简单,但是后来发现,如果添加了屏蔽Home键的功能,对话框的显示出来问题,折腾了几小时,才解决掉。
解决方法:
第一步:重写onAttachedToWindow,以实现屏蔽Home键
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
注意:这里用的TYPE_KEYGUARD_DIALOG,原本是TYPE_KEYGUARD,这会导致对话框显示异常
第二步:在显示对话框dialog.show()下添加代码:
dialog.show();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
参考资源: