android popupwindow 自定义视图

宽高一定要设置否者
设置宽高时,(popupwindow)需要注意高度要减去顶部状态栏的高度 (如果你的activity是全屏模式的话,可以不用处理)
当然我们也可以自己设置高度 比如可以设置屏幕高度的一半或者其他
//获取顶部状态栏的高度
val resourceId: Int = context.resources.getIdentifier("status_bar_height", "dimen", "android")
val statusBarHeight: Int = context.resources.getDimensionPixelSize(resourceId)

//displayMetrics 获取屏幕宽高
val displayMetrics = DisplayMetrics()
activity.windowManager.defaultDisplay.getMetrics(displayMetrics)
this.width = displayMetrics.widthPixels
this.height = displayMetrics.heightPixels - statusBarHeight

//添加这个属性就能解决设置全屏有缝隙这个问题
this.setBackgroundDrawable(null)

然后在你自己定义的页面添加背景即可 我这里直接设置 area_picker_view.xml 顶层视图设置背景
val view = LayoutInflater.from(activity).inflate(R.layout.area_picker_view, null)
this.contentView = view
//activity关闭时,需要关闭当前弹框 popupWindow.dismiss()
posted @   荣超  阅读(550)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2018-08-20 centos 7 安装node.js
2015-08-20 servlet 上传文件 参数中文乱码
点击右上角即可分享
微信分享提示