Android 丰富而全面的弹窗实现 Xpopup

如果您不想使用 Xpopup框架而使用安卓自带弹窗 可以访问我的 另一篇文章

Android PopupWindow点击监听事件及DialogFragment、ProgressDialog、AlertDialog的使用

XPopup

设计思路

  • Center类型,就是在中间弹出的弹窗,比如确认和取消弹窗,Loading弹窗
  • Bottom类型,就是从页面底部弹出,比如从底部弹出的分享窗体,知乎的从底部弹出的评论列表,内部已经处理好手势拖拽和嵌套滚动
  • Attach类型,就是弹窗的位置需要依附于某个View或者某个触摸点,就像系统的PopupMenu效果一样,但PopupMenu的自定义性很差,淘宝的商品列表筛选的下拉弹窗,微信的朋友圈点赞弹窗都是这种。
  • DrawerLayout类型,就是从窗体的坐边或者右边弹出,并支持手势拖拽;好处是与界面解耦,可以在任何界面显示DrawerLayout
  • ImageViewer大图浏览类型,就像掘金那样的图片浏览弹窗,带有良好的拖拽交互体验,内部嵌入了改良的PhotoView
  • 全屏弹窗,弹窗是全屏的,就像Activity那样,可以设置任意的动画器;适合用来实现登录,选择性的界面效果。
  • Position自由定位弹窗,弹窗是自由的,你可放在屏幕左上角,右下角,或者任意地方,结合强大的动画器,可以实现各种效果。

演示

内置弹窗(支持复用已有布局)

在这里插入图片描述

列表Center弹窗

|在这里插入图片描述

Bottom列表弹窗(手势拖拽,横竖滚动)

在这里插入图片描述

自定义Bottom弹窗(天然支持嵌套滚动,多层弹窗)

|在这里插入图片描述

Attach弹窗(动画优雅,智能定位,长按支持)

在这里插入图片描述

自定义Attach弹窗任意方向支持,灵活易用

|在这里插入图片描述

Drawer弹窗(手势拖拽,状态栏阴影)

在这里插入图片描述

全屏弹窗(可作为Activity替代品,搭配十几个动画使用更佳)

|在这里插入图片描述

Position自由定位弹窗(放在屏幕任意地方)

在这里插入图片描述

自定义贴在输入法之上的弹窗

|在这里插入图片描述

PartShadow局部阴影弹窗

在这里插入图片描述

向上向下都可以

|在这里插入图片描述

快速体验

如果二维码图片不可见,点我下载Demo体验

1
implementation 'com.lxj:xpopup:最新版本'

必须添加的依赖库,版本不用和我一致:

1
2
3
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中,请查看下面各个章节:

  • 如何使用内置的弹窗
  • 如何自定义弹窗
  • 如何自定义动画
  • 弹窗常用设置
  • 常见问题
  • 也许你想要这些效果
  • 一行代码在应用后台弹出弹窗
  • 时间选择器和城市选择器

混淆

1
2
-dontwarn com.lxj.xpopup.widget.**
-keep class com.lxj.xpopup.widget.**{*;}