Popupwindow背景颜色变灰色,并点击外部消失

ColorDrawable dw = new ColorDrawable(-00000); //必须放在showatlocation才能起作用,点击外部消失,但不能使灰色背景色也消失
pw.setBackgroundDrawable(dw);

pw.showAtLocation(rl_parent, Gravity.BOTTOM,0,0);


这一段代码可以使popupwindow点击外部消失,必须放在showatlocation才能起作用,点击外部消失,但不能使灰色背景色也消失。至于为什么加了这段代码点击外部会消失我也不清楚,希望知道的朋友留言告诉我。


WindowManager.LayoutParams lp=getWindow().getAttributes();
            lp.alpha=0.3f;
            getWindow().setAttributes(lp);


这段代码使屏幕背景变成灰色


pw.setOnDismissListener(new poponDismissListener()); 

添加消失监听事件

/** 
     * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来 
     * @author cg 
     * 
     */  
    class poponDismissListener implements PopupWindow.OnDismissListener{  
  
        @Override  
        public void onDismiss() {  
        WindowManager.LayoutParams lp=getWindow().getAttributes();
            lp.alpha=1f;
            getWindow().setAttributes(lp);
        }  
          
    }  


还有一个重要的需要补充!:本activity的theme必须使用notitlebar

这是注册表中注册activity的

 <activity
            android:name="ivan.weidian.auction.ReleaseAuction"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:exported="true"
            android:theme="@style/NoTitle" >
</activity>

这是在stylt中定义notitle的

<style name="NoTitle" parent="android:Theme.Black.NoTitleBar" />


完整代码:


case R.id.tv_share_head: //点击分享按钮

pw = new PopupWindow(popshare, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
pw.setFocusable(true);
ColorDrawable dw = new ColorDrawable(-00000); //必须放在showatlocation才能起作用,点击外部消失,但不能使灰色背景色也消失
pw.setBackgroundDrawable(dw);
pw.showAtLocation(rl_parent, Gravity.BOTTOM,0,0);
WindowManager.LayoutParams lp=getWindow().getAttributes();
            lp.alpha=0.3f;
            getWindow().setAttributes(lp);
            pw.setOutsideTouchable(true);
            //添加pop窗口关闭事件  
            pw.setOnDismissListener(new poponDismissListener()); 
            
            TextView cancel = (TextView)popshare.findViewById(R.id.tv_cancel);
            cancel.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
WindowManager.LayoutParams lp=getWindow().getAttributes();
           lp.alpha=1f;
           getWindow().setAttributes(lp);
           pw.dismiss();
}
});
break;


/** 
     * 添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来 
     * @author cg 
     * 
     */  
    class poponDismissListener implements PopupWindow.OnDismissListener{  
  
        @Override  
        public void onDismiss() {  
        WindowManager.LayoutParams lp=getWindow().getAttributes();
            lp.alpha=1f;
            getWindow().setAttributes(lp);
        }  
          
    }  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值