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()
原文地址:https://www.cnblogs.com/rchao/p/13537031.html