PopupWindow的一些使用总结

Popupwindow showAsDropDown全面屏显示异常 PopupWindow(上)中介绍了showAsDropDown()方法,在Android 6的非全面屏手机上显示正常,但是在Android 10的全面屏手机上显示有问题,当 popupwindow 的大小都是 match_parent 时,使用showAsDropDown 并不会 显示在指定view的下方,而是全屏显示: 要解决这个问题你应该知道 getGlobalVisibleRect、getLocalVisibleRect、getLocationInWindow、getLocationOnScree 阅读详情

这是我在使用PopupWindow过程中的一点小经验


1. 让PopupWindow以下拉方式显示在指定位置

这个简单,PopupWindow提供了showAsDropDown,如

mPopupWindow.showAsDropDown(mAnchorView, 0, 0);

mAchorView是一个基准,popupWindow会显示在它的下面。当然也可以显示在它的上面或者左面和右面,这个可以通过其他方法和参数控制。


2。做出类似对话框的背景半透效果

1) 设置PopupWindow全屏:

        mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
        mPopupWindow.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);


2) 设置背景

背景有两中方式,一种方式是通过mPopupWindow.setBackgroundDrawable, 一种方式是增加一个自己的容器,如FrameLayout。

建议增加自己的容器,因为后面我们要处理touch事件,让窗口关闭。设置容器通过

mPopupWindow.setContentView(mContainer);

3) 处理touch事件,当touch在非内容区域时,popup窗口关闭

非内容区域分两类:半透明区域,这是在容器上的;透明区域,这一部分在popup窗口外。之所以出现这种情况,是在调用showAsDropDown后,AnchorView之上的区域没有被Popupwindow覆盖。

所以首先:

mPopupWindow.setFocusable(true);
这样,让PopupWindow能够接受全屏的touch事件,然后,处理容器的touch事件

 private class ContainerView extends FrameLayout {
        public ContainerView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (!super.onTouchEvent(event)) {
                if (event.getAction() == event.ACTION_UP) {
                    dismiss();
                }
            }
            return true;
        }
    }


popupWindow在android7.0以上显示全屏的问题 在Android7.0以上版本调用popupWindow的showAsDropDown()方法,始终显示全屏,或者遮蔽标题栏目, 解决方案: package com.example.view; import android.content.Context; import android.graphics.Rect; import android.os.Build; import andr... 阅读详情

相关推荐

自定义PopupWindow全屏显示

自定义PopupWindow的时候发现一个问题:系统状态栏没有被遮盖,给人的感觉不是很友好。 1、自定义的Popupwindow部分代码: public void show() { this.showAtLocation(activity.getWindow().getDecorView(), Gravity.BOTTOM, WindowManager.LayoutPara...

宁静的小孩的博客 2743

Android全屏对话框

全屏对话框实现

落叶Ex的博客 735

Android进阶之路 - popupWindow使用详解

popupWindow还是比较好用的一款控件,他不会像Dialog一样让内容与样式死板,他的优势就在于我们可以填充自己喜欢的样式;在使用中遮盖层是个不大不小的问题,本文已经解决,同时还有一些其他问题的解决方式,也都在代码中进行了注释,大家请直接往下看吧(PS:最后又惊喜,或许你想要的答案就在最后哦)

Android、前端、小程序、后端 1万+

popupWindow 使用

1、android 对话框常见的两种:dialog,popupWindow。其中dialog是android提供的,包含了很多,现成的定制,同时,功能也受到了限制。普通窗口建议用dialog。 dialog满足不了的用popupWindow,popupWindow 是很自由的自定义显示界面。官方文档的描述是:A popup window that can be used to displ...

weixin_30519071的博客 161

Materials Studio多层聚合物建模全流程:从Build Layers到LAMMPS data文件导出避坑指南

本文详细解析了使用Materials Studio构建多层聚合物模型并导出为LAMMPS data文件的全流程。重点剖析了Build Layers工具的核心逻辑、真空层处理技巧,并提供了解决导出过程中Z轴坐标偏移问题的实战方案,特别是如何利用msi2lmp工具的-shift参数进行精准校正,确保模型在LAMMPS中模拟的稳定性和准确性。

hhh00的博客 913

SAP PS项目结算实操:从CJ20N到CJ88,手把手搞定项目成本结转与凭证生成

本文详细解析SAP PS项目结算全流程,从CJ20N到CJ88的操作要点,涵盖成本归集、结算规则配置、结果分析及凭证生成等关键环节。特别针对FICO模块中的项目凭证流转问题提供实战解决方案,帮助财务人员规避常见配置错误,提升项目结算效率与准确性。

weixin_26833503的博客 813

PopupWindow的使用

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 在实际中,我们有时为了更炫的效果,而不会使用原生的Menu菜单弹出方式,其中,使用PopupWindow就是一种常用方式,下面用一个简单示例来演示,点击Menu菜单按钮,以动画的方式弹出一个PopupWindow窗...

孤云博客 3880

一起玩转GNU Radio:调制解调大合集

本文汇总了GNU Radio中多种常见的调制解调方法及其参考文献链接,便于今后查看,供大家参考!

无线通信实验室 1万+

安卓开发popupWindow的使用

是 Android 系统提供的弹窗容器组件,核心作用是在当前页面的任意位置弹出一个悬浮视图,用于展示额外内容、提供操作选项或临时交互,不占用固定布局位置。popupWindow常用来做筛选栏,我们就以下面的效果为例,学习popupWindow的基本用法下面先写一个xml文件,先写出筛选栏 接下来定义每个筛选栏的下拉菜单,这里简单用一个ListView展示即可 下面直接抛对应活动的代码 代码整体比较多,我们一点点来拆解。首先加载出popupWindow的菜单布局popupView然后进行初始化,popupWi

2401_86909484的博客 799

RK3568点不亮EK79007 MIPI屏?别急着改时序,先检查这个初始化命令

本文深入解析RK3568开发板调试EK79007 MIPI屏幕时初始化命令的关键作用,揭示80%的时序问题实际源于命令配置不当。通过典型故障案例,详细拆解初始化命令的调试方法、寄存器映射及系统化排查流程,帮助工程师快速定位和解决屏幕点亮问题。

weixin_33657090的博客 349

开源多波束声呐数据集:从原始回波到AI识别的关键一步

本文探讨了开源多波束前视声呐数据集(UATD)在AI目标识别中的关键作用。通过分析原始回波数据与处理后数据的差异,揭示了开源数据集如何降低研究成本、提升实验可重复性,并加速技术迭代。文章还详细解析了UATD数据集的结构、实战应用技巧及从原始数据到AI模型的完整流程,为水下目标识别研究提供了宝贵参考。

weixin_28675839的博客 422

java popupwindow_PopupWindow 使用详解

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:PopupWindow 继承关系PopupWindow 使用方法PopupWindow 底部PopupWindow的实现PopupWindow 是一个可以在Activity之上显示任意View的控件。在Android经常使用,效果跟Dia...

weixin_35762258的博客 435

RK3568 上C图像camera图像采集应用实例(二)

本文探索rk3568上实现C语言的 通过C v4l2 接口 采集图像 ,刷屏控制 drm的显示camera图像中 实现camera preview 预览 的实践和探索。

luoshanxuli2010的专栏 760

Android PopupWindow使用方法小结

经常使用PopupWindow的小伙伴请看这里:PopupWindow小总结 传送门

梁超杰 425

标准论文参考文献添加方法——Zotero入门使用教程

第一篇论文投出去了,写一下最后一步的参考文献修饰润色吧! 论文的参考文献,即References,是论文的最后一步,相信不管是写毕设论文还是期刊论文都遇到过需要修改参考文献的情况,非常之麻烦。而且参考文献中经常会与生僻奇怪气体出现,一个一个修改非常浪费时间,这里介绍一下一个非常好用的软件Zetero。 第一步:软件的下载安装及绑定Word 尽量使用客户端吧,

MISAYAONE的博客 20万+

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

算法大师! 154

PopupWindow的简单使用

PopupWindow是一个弹框的效果,他可以在点击某一个控件的时候弹出一个信息。     它得使用两个布局来实现,一个是父布局,另一个是需要弹出的布局。      废话不多说,直接上代码 两个布局: 1、 xml version="1.0" encoding="utf-8"?> RelativeLayout xmlns:android="http://schem

Cattle_Wei的博客 502

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android java Popupwindow的使用

【代码】android java Popupwindow的使用。

awildpig110的博客 465

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PopupWindow 最基础的使用方法

PopupWindow 最基础的使用方法 点击弹出一些条目 所以得写一个布局文件来装这些控件,这个布局文件就写你点击后想出现的界面 例如 在这里插入代码片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:la

ZGxiang_的博客 313

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Android】【PopupWindow】的使用

【PopupWindow】的使用和【Dialog】差不多,感觉在实际开发中还是使用Dialog多一点。 1.创建布局 view_popupwin.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and

每天不是在写bug就是在写bug的路上 3265

PopupWindow案例 PopUpWindow+ListView 使用

1. PopupWindow Api理解: PopupWindow popupWindow=null; View pView=null; public void showPopWindow(View view){ if(popupWindow==null){ // 加载布局 pView =View.inflate(this,R.layout.popup...

dreams_deng的博客 1029

Popupwindow的简单使用

本文简单地介绍Popupwindow的使用方法 public class MainActivity extends AppCompatActivity { PopupWindow popupWindow;//初始化定义Popupwindow @Override protected void onCreate(Bundle savedInstanceState) { ...

u014131314的博客 278

android popupwindow dialog区别,Android PopUpWindow使用详解

释放双眼,带上耳机,听听看~!一、概述1、PopupWindow与AlertDialog的区别最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。2、PopupWindow的相关函数第一步:最基本构造PopupWindowView c...

weixin_35713476的博客 377

android中popupwindow,Android PopupWindow使用

最近项目中使用到了PopupWindow,记录下效果图刚开始是想用dialog来实现的,后面想了下最终还是用了PopupWindow来实现首先使用的PopupWindow的地方比较多,用了一个管理类,代码如下:package ***;import android.view.View;import android.view.ViewGroup;/*** Des: PopupWindow管理类* Cr...

weixin_42506884的博客 390
上一篇: V8 javascript引擎初步体验
下一篇: Override ListView getAdapter造成的后果
漂流的代码
博客等级 码龄23年 188粉丝 99原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值