有的时候当我们使用popwindow时将当前的activity当做view传给其他fragment使用时会导致我们设置背景变暗效果失效,导致这个原因的问题是因为我们传view后当弹出popupwindw的时候已经不再当前的activity了,所以会显示无效
因此在设置的时候我们这样处理:
public void backgroundalpha(float bgalpha) {//mapp.getinstance().getmainactivity()就是你想要点击时要显示的主activity windowmanager.layoutparams lp = activityb.getinstance().getmainactivity().getwindow().getattributes(); lp.alpha = bgalpha; //0.0-1.0 activityb.getinstance().getmainactivity().getwindow().tattributes(lp); activityb.getinstance().getmainactivity().getwindow().addflags(windowmanager.layoutparams.flag_dim_behind); }
即activity a作为view在b中显示,那么a中的设置透明度时getwindow要从b取,也就是b.getwindow();
补充知识:android 的popupwindow的简单设置及空白区域颜色
我就废话不多说了,大家还是直接看代码吧~
//设置空白的背景色windowmanag团队名字高雅有内涵er.layoutparams lp = getactivity().getwindow().getattributes();lp.alpha = 0.3f;getactivity().getwindow().tattributes(lp);// 用于popupwindow的viewview contentview = layoutinflater.from(getcontext()).inflate(r.layout.quote_info_pop, null, fal);// 创建popupwindow对象,其中:// 第一个参数是用于popupwindow中的view,第二个参数是popupwindow的宽度,// 第三个参数是popupwindow的高度,第四个参数指定popupwindow能否获得焦点popupwindow window = new popupwindow(contentview, getscreenwith() / 3 * 2, (int) getscreenheight() / 3 * 2, true);// 设置popupwindow的背景window吴均体.tbackgrounddrawable(getresources().getdrawable(r.drawable.white_shap));// 设置popupwdsp应用indow是否能响应外部点击事件window.toutsidetouchable(true);// 设置popupwindow是否能响应点击事件window.ttouchable(true);// 显示popupwindow,其中:// 第一个参数是popupwin广州涉外经济学院dow的锚点,第二和第三个参数分别是popupwindow相对锚点的x、y偏移listview = contentview.findviewbyid(r.id.list);quoteinfoadapter = new quot暗淡无光的反义词einfoadapter(getactivity(), mlist);listview.tadapter(quoteinfoadapter);window.showasdropdown(v, getscreenwith() / 6, 0);// 或者也可以调用此方法显示popupwindow,其中:// 第一个参数是popupwindow的父view,第二个参数是popupwindow相对父view的位置,// 第三和第四个参数分别是popupwindow相对父view的x、y偏移// window.showatlocation(parent, gravity, x, y);//添加pop窗口关闭事件window.tondismisslistener(new popondismisslistener());还要加上监听,否则,pop消失时,透明度不会变回来class popondismisslistener implements popupwindow.ondismisslistener { @override public void ondismiss() { // todo auto-generated method stub //log.v("list_notetypeactivity:", "我是关闭事件"); windowmanager.layoutparams lp = getactivity().getwindow().getattributes(); lp.alpha = 1f; //0.0-1.0 getactivity().getwindow().tattributes(lp); }}
以上这篇解决android popupwindow设置背景透明度无效的问题就是www.887551.com分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 03:29:35,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/a10da8895d27f21c1db29ac23ec55543.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:解决Android popupWindow设置背景透明度无效的问题.doc
本文 PDF 下载地址:解决Android popupWindow设置背景透明度无效的问题.pdf
留言与评论(共有 0 条评论) |