Dialog 设置透明背景(去掉蒙层)状态栏颜色不改变
Dialog设置透明背景(去掉蒙层)
//背景全透明
window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
window!!.setDimAmount(0f)
Dialog弹出时状态栏颜色不改变
//弹出时状态栏颜色不改变
window!!.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
原因:
正常情况下,Dialog弹出时背景有灰色蒙层,此时状态栏的颜色变为亮色,这是由于设置了addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
所以如果需要状态栏不因Dialog弹出而改变,即需要
clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
完整代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.dialog_store_detail)
if (window != null) {
window!!.setGravity(Gravity.BOTTOM)
val lp = window!!.attributes
lp.width = WindowManager.LayoutParams.MATCH_PARENT
lp.height = WindowManager.LayoutParams.WRAP_CONTENT
window!!.attributes = lp
window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
//背景全透明
window!!.setDimAmount(0f)
//弹出时状态栏颜色不改变
window!!.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
}
...
}
写在最后
此文章为个人开发时记录,有时时间有限,无法深入研究,若看到此文章后有其他见解或解决方式,欢迎留言交流👇👇👇
————————————————
版权声明:转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44158429/article/details/125779566