当前位置: 移动技术网 > IT编程>移动开发>Android > Android PopWindow的替代品BasePopup

Android PopWindow的替代品BasePopup

2019年06月03日  | 移动技术网IT编程  | 我要评论

沙井龙哥,露娜球怎么用,xlzolo

版权声明:本文为xing_star原创文章,转载请注明出处!

本文同步自

背景描述

最近一段时间,又看到了这个开源项目basepopup,记得最早关注这个项目还是17年,看了下commit的提交记录,作者从16年开始维护到19年,还是很有毅力的,看issue以及文档觉得作者挺用心的,为作者点赞。做android开发很多年了,貌似关于popwindow的使用倒是不是特别的多,以前弹窗的技术实现基本上用的是dialogfragment,自定义一个basedialogfragment,约定一些方法,最终子类扩展实现,基本上满足了绝大多数的弹窗需求,无论是底部弹窗,中间弹窗,全屏弹窗还是什么其他的,有些可以使用alertdialog等之类的实现,popwindow的使用真的很少碰到,最近接触的几个项目,倒是使用popwindow的地方比较多,当然按理说这些弹窗也可以用dialog或者是dialogfragment实现,不过项目已经采用了popwindow的方式,那就尽量保持统一的技术实现。

popwindow的使用场景

一般来说,包含用来做条件筛选,比如美团上的多级条件筛选,或者是其他app上的条件筛选,仿bootomsheet底部弹出的效果(用dialog,popwindow都可以实现),仿朋友圈评论点赞的popwindow效果,仿alertdialog弹出类的popwindow(这种既然系统提供了,那就用系统的,就不需要自己在自定义popwindow实现这种效果),以及有动画渐变渐进式效果的弹窗效果,比如qq空间里面的那个点击弹框,基本上用popwindow也可以实现绝大多数的弹窗需求(可能你会碰到很多坑,所以这里还是得借助下basepopup),popwindow有一大优势,就是可以细粒度的控制弹窗的显示位置,比如当前view的上下左右方位等,或者是稍微偏移点,都是可行的。这一点是dialog,或者是dialogfragment无法比的。

使用默认的popwindow会碰到的问题

相信你在用popwindow过程中碰到了不少问题,这里我们列举几个常见的问题。

1. 设置主布局根节点大小无效(layout_width, layout_height),这种情况下我们需要给根节点再加一层父容器,让父容器成为xml根节点

2.android n以上设备popwindow显示有问题,以及存在阴影覆盖问题等,这种看这篇描述的

3.使用window测量,控制大小,测量的宽高都是0

4. 以及诸多更多的细节点,不一一举例了

basepopup的demo效果

依次是底部弹窗,popwindow支持输入法输入文本,仿朋友圈点赞评论效果

demo apk体验地址为

项目使用

想要使用basepopup直接到对应的github上按照对应的文档接入,教程写的很详细,有问题也可以在issue里面查找,再贴一下项目地址。

参考资料

popupwindow使用常见的错误 

basepopup项目地址 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网