与popupwindow有关的坑,Activity A打开B,B调起popupwindow,B会瞬间透明并且看到A?

在家搞自己的APP时,遇到奇怪的问题,如标题描述:我先打开的Activity A,点A上的某个控件打开Activity B,点B上的某个控件调起popupwindow,这里popupwindow有段设置半透明的代码,就是让背景变灰的效果,在调起的那一刻我居然透过B看到了A。什么鬼啊这是? 然后我翻找老版本的APP运行,没问题啊,有没有搞错? 代码一样的,老的没问题?新的有问题? 然后一时间蒙了,问度娘吧,只找到一个与我有相似问题的解答,不对,其实并不是解答,就是挂个问题在上面而已,底下有条回复说注销掉设置透明的代码,说了等于没说,注销了还搞个毛线,我要的就是这个变灰的效果。虽然问度娘无果,但是可以确定问题是出在这个设置  透明度 的过程,然后我冷静的想了想,老代码 到 新代码 的更新过程,我TM到底都干了些什么? 冷静还是有用的,TM的居然还真让我想通了,就是这个鬼在搞事:

<item name="android:windowIsTranslucent">true</item>

之前为了在另外的控件上达到透明效果,在activity的theme上增加了上面这个参数,由于对应的theme是全局的,改变了所有引用这个theme的activity。现在好了问题找到了,解决办法就是找到对应的theme去掉这个参数,或者新建个theme给需要弹popupwindow的activity用就可以了。


另外在还出现个问题,B调起过popupwindow过后,返回到A,在这个过程会出现短暂的黑屏,这个网上有解决方法:

调起时 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

退出时 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

PS:我在退出时,又Add了一次,能不黑屏吗?尴尬

记录一下,免得下次又踩到这个坑里了!


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值