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

相关文章
|
开发工具 Android开发 git
解决Android AAPT: error: resource android:attr/lStar not found. 问题
解决Android AAPT: error: resource android:attr/lStar not found. 问题
1741 0
|
11月前
|
编译器 程序员 Linux
实用工具:VS Code 配置 Markdown 编译器全指南
本文介绍如何在VS Code中配置高效Markdown写作环境,通过启用内置预览、安装Markdown All in One与Markdown Preview Enhanced插件,并配置Princexml实现PDF等格式导出,全面提升编辑、预览与输出效率,适合程序员、学生及内容创作者使用。
6834 2
实用工具:VS Code 配置 Markdown 编译器全指南
|
7月前
|
机器学习/深度学习 存储 人工智能
还在手写Skill?hermes-agent 让 Agent 自己进化能力
Hermes-agent 是 GitHub 23k+ Star 的开源项目,突破传统 Agent 依赖人工编写Aegnt Skill 的瓶颈,首创“自我进化”机制:通过失败→反思→自动生成技能→持续优化的闭环,让 Agent 在实践中自主构建、更新技能库,持续自我改进。
4278 8
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2
5997 0
|
API Android开发 容器
33. 【Android教程】悬浮窗:PopupWindow
33. 【Android教程】悬浮窗:PopupWindow
2805 2
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associate
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associate
714 2
|
Shell Android开发 Java
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
3048 2
|
Java
gradlew与jdk版本不匹配,可以通过配置指定jdk 版本
gradlew与jdk版本不匹配,可以通过配置指定jdk 版本
2992 0
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
2729 1