xujiaji / HappyBubble

:thought_balloon:BubbleLayout随意变化的气泡布局、消息对话框,可定制颜色,背景、弧度、尖角弧度、边框等等。BubbleDialog气泡弹窗根据点击View的位置定位它的弹窗位置,BubbleDialog可定制方向等!(BubbleLayout changes freely,BubbleDialog click on the location of View positioning its location,BubbleDialog can be customized directions.)
Apache License 2.0
714 stars 113 forks source link

部分手机显示bubble时会向下偏移 #16

Closed zhangzhen123 closed 4 years ago

zhangzhen123 commented 5 years ago

IMG_20190423_174736 问题手机是华为p20 8.1系统 不过另一台p20 9.0系统的是正常的 还有一台8.1的oppo显示也是正常的。

xujiaji commented 5 years ago

是点击所有的按钮都向下偏移了么?

xujiaji commented 5 years ago

这个我还真就没有思路了!我搜一搜

xujiaji commented 5 years ago

你试试添加下面这句到清单文件Application标签里面,重新运行试试呢!

<meta-data android:name="android.max_aspect" android:value="2.1" />
zxc120301945 commented 5 years ago

我也出现了这个问题,发现在华为的p20上会往下移大概一个刘海状态栏的高度,设置了你说的meta 不管用

xujiaji commented 5 years ago

@zxc120301945 你好请试试下面这边代码是否能解决问题呢!

BubbleDialog中的setClickedView()方法替换如下

    /**
     * 设置被点击的view来设置弹出dialog的位置
     */
    public <T extends BubbleDialog> T setClickedView(View view)
    {
        this.mClickedView = view;
        mClickedView.getLocationOnScreen(clickedViewLocation);

        int[] contentLocation = new int[2];
        if (getWindow() != null) {
            getWindow().getDecorView().findViewById(android.R.id.content).getLocationOnScreen(contentLocation);
        }
        clickedViewLocation[0] -= contentLocation[0];
        clickedViewLocation[1] -= contentLocation[1];

        if (mOnGlobalLayoutListener != null)
        {
            onAutoPosition();
            setLook();
            dialogPosition();
        }
        return (T) this;
    }
zxc120301945 commented 5 years ago

@xujiaji 替换你给的方法也不能解决这个问题!

zxc120301945 commented 5 years ago

Screenshot_20190912-154444

xujiaji commented 5 years ago

@zxc120301945 身边没有对应的机型,只有盲猜了。如果方便,可以加我QQ么? QQ:26323405