近日,遇到一个dialog半透明背景消失的问题,背景需求是自定义dialog实现警告提示框:
// 初始化警告弹出框 alertdialog = new empalertview(context, utils.getidbyname(context, "style", "alert_style")); alertdialog.setcanceledontouchoutside(false); layoutinflater inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service); layout = inflater.inflate(utils.getidbyname(context, "layout", "alertview"), null); layout.setlayoutparams(new layoutparams(layoutparams.match_parent, layoutparams.wrap_content)); // 设置半透明背景 window window = alertdialog.getwindow(); windowmanager.layoutparams lp = window.getattributes(); lp.alpha = 0.9f; window.setattributes(lp); alertdialog.setcontentview(layout);
进行页面操作及用户提示,一切显示正常,如图:
当按下屏幕电源按钮,再次点亮屏幕,发现dialog半透明的灰暗背景消失了.....
解决方法:设置window.addflags(windowmanager.layoutparams.flag_show_when_locked);修改后如下:
// 初始化警告弹出框 alertdialog = new empalertview(context, utils.getidbyname(context, "style", "alert_style")); alertdialog.setcanceledontouchoutside(false); layoutinflater inflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service); layout = inflater.inflate(utils.getidbyname(context, "layout", "alertview"), null); layout.setlayoutparams(new layoutparams(layoutparams.match_parent, layoutparams.wrap_content)); window window = alertdialog.getwindow(); windowmanager.layoutparams lp = window.getattributes(); lp.alpha = 0.9f; window.setattributes(lp); // 防止按下再重新开启屏幕电源,原先变暗的背景变白色 window.addflags(windowmanager.layoutparams.flag_show_when_locked); alertdialog.setcontentview(layout);
以上所述是小编给大家介绍的android开发中dialog半透明背景消失,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
LongClick原理、上下文菜单原理、EditText长按弹窗原理、WebView长按弹窗自定义、修复WebView全选重复bug ———————————————— 版权声明:本文为CSDN博主「
JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 10 Service
网友评论