popupwindow showAsDropDown 无效解决方法

简介: popupwindow showAsDropDown 无效解决方法

今天运行一个很久之前做的项目的时候,发现界面变成了这个样子,就是一个普通的popwindow

image.png

image.png

然后用了一下低版本手机测试是显示正常的,搜索相关资料,发现是Android7.0 及以上手机有这个问题

原来的代码:

    mPopupWindow.showAsDropDown(view);

  view是显示到哪个控件下面就放哪个view,不多解释。

现在的代码:

PopWindowUtil.showAsDropDown(mPopupWindow,view,0,0);
package com.jky.mobilebzt.util;
import android.graphics.Rect;
import android.os.Build;
import android.view.View;
import android.widget.PopupWindow;
public class PopWindowUtil {
    public static void showAsDropDown(final PopupWindow pw, final View anchor, final int xoff, final int yoff) {
        if (Build.VERSION.SDK_INT >= 24) {
            Rect visibleFrame = new Rect();
            anchor.getGlobalVisibleRect(visibleFrame);
            int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom;
            pw.setHeight(height);
            pw.showAsDropDown(anchor, xoff, yoff);
        } else {
            pw.showAsDropDown(anchor, xoff, yoff);
        }
    }
}

现在的效果:

image.png

image.png

相关文章
|
6月前
|
Android开发
setOnItemClickListener不起作用解决方法
setOnItemClickListener不起作用解决方法
130 2
|
Android开发
Android中保存当前按钮的状态 按back键返回之后再次进入没有改变
Android中保存当前按钮的状态 按back键返回之后再次进入没有改变
67 0
|
前端开发 JavaScript 开发者
设置height:100%无效的原因以及两种解决方法
设置height:100%无效的原因以及两种解决方法
1195 0
|
Java 数据库 Android开发
Android 7.1 异常删除data文件导致HOME键失效
Android 7.1 异常删除data文件导致HOME键失效
209 0
关于 QMessageBox定制大小重写showEvent失败的 解决方法
关于 QMessageBox定制大小重写showEvent失败的 解决方法
关于 QMessageBox定制大小重写showEvent失败的 解决方法
关于 QLineEdit设置QDoubleValidator设置范围无效问题 的解决方法
关于 QLineEdit设置QDoubleValidator设置范围无效问题 的解决方法
关于 QMainwindow设置布局layout失败 的解决方法
关于 QMainwindow设置布局layout失败 的解决方法
|
Java Android开发
android中开启ProgressDialog进度条之后,屏蔽返回按键。
android中开启ProgressDialog进度条之后,屏蔽返回按键。
175 0