Android爬坑-悬浮窗显示位置问题

需求是实现一个悬浮窗,这里使用了WindowManager

  mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
        mLayoutParams = new WindowManager.LayoutParams();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            //不需要manifest声明悬浮窗权限,但是2.3上无法接收点击事件
            mLayoutParams.type = LayoutParams.TYPE_TOAST;
        } else {
            mLayoutParams.type = LayoutParams.TYPE_TOAST;
        }
        //设置图片格式,效果为背景透明
        mLayoutParams.format = PixelFormat.RGBA_8888;
        //设置浮动窗口不可聚焦(实现操作除浮动窗口外的其他可见窗口的操作)
        mLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE;
        DisplayMetrics metric = new DisplayMetrics();
        mLayoutParams.width= LayoutParams.MATCH_PARENT;
        mLayoutParams.height = LayoutParams.MATCH_PARENT;
        mLayoutParams.gravity = Gravity.CENTER;
        mLayoutParams.y = DisplayUtil.dip2px(mContext,8);
        if (null == mFloatWindowView) {
            mFloatWindowView = new FlowWindowView(mContext, this, flowWindowConfig);
        }
        FlowWindowLogHelper.logFlowWindowShow(mContext);

问题:发现悬浮窗是出来了,但是不管怎么设置Gravity,一直显示在屏幕的最上方,x,y坐标也不生效,折腾了老旧。
问题在于,所显示的view的高度不能使用match_parent,会导致view的高度为整个屏幕,自然也就靠顶部显示,x,y也控制不了view的位置了,所以将param的高度设置为Wrap_content即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值