XPopup
2.0.0版本重磅来袭,底层改为Dialog实现,并带来可观的动画性能优化和交互细节的提升,数十个Bug修复!!!
功能强大,UI简洁,交互优雅的通用弹窗!可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件,自带十几种效果良好的动画, 支持完全的UI和动画自定义!它有这样几个特点:
- 功能强大,内部封装了常用的弹窗,内置十几种良好的动画,将弹窗和动画的自定义设计的极其简单;目前还没有出现XPopup实现不了的弹窗效果。 内置弹窗的UI是固定的,但允许你使用项目已有的布局或者自己的布局,同时还能用上XPopup提供的动画,交互和逻辑封装。
- UI和动画简洁,遵循Material Design,在设计动画的时候考虑了很多细节,过渡,层级的变化;或者说是模拟系统组件的动画,具体可以从Demo中感受
- 交互优雅,实现了优雅的手势交互,智能的嵌套滚动,智能的输入法交互,具体看Demo
- 适配全面屏,目前适配了小米,华为,谷歌,OPPO,VIVO,三星,魅族,一加全系全面屏手机
- 自动监听Activity生命周期,自动释放资源。在Activity直接finish的场景也避免了内存泄漏
- 易用性,所有的自定义弹窗只需继承对应的类,实现你的布局,然后像Activity那样,在
onCreate方法写逻辑即可 - 性能优异,动画流畅;精心优化的动画,让你很难遇到卡顿场景
- 能在应用后台弹出(需要申请悬浮窗权限,一行代码即可)
- 支持androidx
设计思路: 综合常见的弹窗场景,我将其分为几类:
- Center类型,就是在中间弹出的弹窗,比如确认和取消弹窗,Loading弹窗
- Bottom类型,就是从页面底部弹出,比如从底部弹出的分享窗体,知乎的从底部弹出的评论列表,我内部会处理好手势拖拽和嵌套滚动
- Attach类型,就是弹窗的位置需要依附于某个View或者某个触摸点,就像系统的PopupMenu效果一样,但PopupMenu的自定义性很差,淘宝的商品列表筛选的下拉弹窗也属于这种,微信的朋友圈点赞弹窗也是这种。
- DrawerLayout类型,就是从窗体的坐边或者右边弹出,并支持手势拖拽;好处是与界面解耦,可以在任何界面显示DrawerLayout
- ImageViewer大图浏览类型,就像掘金那样的图片浏览弹窗,带有良好的拖拽交互体验,内部嵌入了改良的PhotoView
- 全屏弹窗,弹窗是全屏的,就像Activity那样,可以设置任意的动画器;适合用来实现登录,选择性的界面效果。
- Position自由定位弹窗,弹窗是自由的,你可放在屏幕左上角,右下角,或者任意地方,结合强大的动画器,可以实现各种效果。
演示
| 内置弹窗(支持复用已有布局) | 列表Center弹窗 |
|---|---|
| Bottom列表弹窗(手势拖拽,横竖滚动) | 自定义Bottom弹窗(天然支持嵌套滚动,多层弹窗) |
|---|---|
| Attach弹窗(动画优雅,智能定位,长按支持) | 自定义Attach弹窗(任意方向支持,灵活易用) |
|---|---|
| Drawer弹窗(手势拖拽,状态栏阴影) | 全屏弹窗(可作为Activity替代品,搭配十几个动画使用更佳) |
|---|---|
| Position自由定位弹窗(放在屏幕任意地方) | 自定义贴在输入法之上的弹窗 |
|---|---|
| PartShadow局部阴影弹窗 | 向上向下都可以 |
|---|---|
| ImageViewer大图浏览弹窗(拖拽自然,如丝般顺滑) | 超长图片支持(图像渐变过渡,优雅从容) |
|---|---|
| 大图浏览弹窗,支持界面自定义 | 配合ViewPager使用 |
|---|---|
| 自定义弹窗和自定义动画 | 内置优雅美观的动画器,可搭配弹窗结合使用 |
|---|---|
| 应用后台弹出(一行代码实现权限申请) | 联想搜索实现,轻而易举 |
|---|---|
快速体验
Gif录制的优点卡顿,真机预览效果更佳。扫描二维码下载Demo:
如果二维码图片不可见,点我下载Demo体验
Gradle
implementation 'com.lxj:xpopup:最新版本'
必须添加的依赖库,版本号在26以及以上即可,版本不用和我一致:
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
如果你是androidx,则上面三个对应的androidx依赖是,版本不用和我一致:
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.3.0-alpha01'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
使用文档
具体使用方法全在WIKI中,请查看下面各个章节:
混淆
-dontwarn com.lxj.xpopup.widget.**
-keep class com.lxj.xpopup.widget.**{*;}
谁在用XPopup
我本人很希望您能点击这里附上使用这个库的App名或者公司名,这样会给我更大的动力和热情去维护这个类库。
根据热心朋友提供的信息,目前使用XPopup的产品和公司有:
- 海鸥地图(cn.gullmap.com/)
- 马自达汽车检测(主要是一个汽车厂商工作人员使用的汽车检测APP)
- 变福侠App
- 进境肉牛检疫追溯系统(App端)
- 太极 (,维术大神作品,VirtualXposed作者, 下载地址:www.coolapk.com/apk/me.weis…)
- 爱勘(ican)App
- 医美消费指南(www.pgyer.com/yimeiandroi…)
- 蜜尚(APP名,广州时尚商业城有限公司(时尚集团))
- 关爱岛
- 密籍(下载地址:www.coolapk.com/apk/com.rai…)
- 万话筒
- 易果无忧
- Moo日记, 下载地址 www.wandoujia.com/apps/804475…
- 智华泊位(重庆即停科技有限公司)
- 中英互译(梅州小白科技有限责任公司 sj.qq.com/myapp/detai…
- 采蘑菇(a.app.qq.com/o/simple.js…
- 蜂鸟屋APP,蜂鸟屋SAAS 平板
- 茶臻选(android.myapp.com/myapp/detai…
- 风扇屏客户端app
- EdifierConnect 漫步者耳机产品APP
- 斑猪(广州汇数创联科技有限公司)
- 夜探(成都波斯猫)
- 极光影院(个人开发者,可到公众号极光终点站下载)
- 万码(深圳市靠谱软件有限公司)
- 爱多路(常州玺拓软件有限公司 a.app.qq.com/o/simple.js…
- 有播(公司:浙江有播科技有限公司 android.myapp.com/myapp/detai…
- 微寻互助(app)
- 米袋出行、米袋汽车(上海米袋投资集团有限公司(米袋集团))
- 悦动圈(下载地址:www.51yund.com/down?from=d…)
- 路马帮App
- 椰子姐姐App(学习英语的App)
- 橙杏健康App,橙杏守护App(北京橙杏有道有限公司)
- 红星直播(红星美凯龙旗下的直播App)
- 花生代理App (www.appchina.com/app/com.qi.…)
打个赏
如果你觉得我帮助到了你,节省了你的时间,可以对我进行打赏(打赏时可以附上自己的大名和Github地址),金额随意,以表支持。打赏名单
联系方式
Github地址:github.com/li-xiaojun/…
XPopup交流群:783659607
Gmail: lxj16167479@gmail.com
QQ Email: 16167479@qq.com
QQ: 16167479