Android PopupWindow菜单在ListView中显示

    private PopupWindow mOperaPopup;
    private void showMenuPopup(View anchor)
    {
        if(mOperaPopup==null)
        {
            View popupView=View.inflate(mContext,R.layout.popup_opera_subject,null);
            mOperaPopup=new PopupWindow(mContext);
            mOperaPopup.setBackgroundDrawable(new ColorDrawable(
                    mContext.getResources().getColor(R.color.transparent)));
            mOperaPopup.setContentView(popupView);
            mOperaPopup.setFocusable(true);
            mOperaPopup.setOutsideTouchable(true);
            //ppw消息监听,让整体背景恢复到正常
            mOperaPopup.setOnDismissListener(new PopupWindow.OnDismissListener() {
                @Override
                public void onDismiss() {
                    WindowManager.LayoutParams layoutParams=mActivity.getWindow().getAttributes();
                    layoutParams.alpha=1.0f;
                    mActivity.getWindow().setAttributes(layoutParams);
                }
            });
            //手机返回键监听,让ppw消失
            popupView.setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    if (keyCode == KeyEvent.KEYCODE_BACK) {
                        mOperaPopup.dismiss();
                        return true;
                    }
                    return false;
                }
            });
        }
        int offX=ScreenInfomationLoader.getInstance().dpToPx(107);//适配自定义偏移距离(根据具体布局)
        //gravity是表示ppw相对于anchor的左边距还是右边距,x方向向右为正,y方法,向下为正
        mOperaPopup.showAsDropDown(anchor,-offX,0,Gravity.LEFT);
        WindowManager.LayoutParams layoutParams=mActivity.getWindow().getAttributes();
        layoutParams.alpha=0.8f;//通过透明度控制整体背景变暗,值越大,越透明;值越小,越暗。
        mActivity.getWindow().setAttributes(layoutParams);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值