Android XPopup弹窗

作者: 因为我的心 | 来源:发表于2020-08-12 13:59 被阅读0次

    一、前言:

    功能强大,UI简洁,交互优雅的通用弹窗,可能是Android平台最好的弹窗库!可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件!它有这样几个特点:

    • 功能强大,内部封装了常用的弹窗,内置十几种良好的动画,将弹窗和动画的自定义设计的极其简单;目前还没有出现XPopup实现不了的弹窗效果。 内置弹窗允许你使用项目已有的布局,同时还能用上XPopup提供的动画,交互和逻辑封装。
    • UI和动画简洁,遵循Material Design,在设计动画的时候考虑了很多细节,过渡,层级的变化;或者说是模拟系统组件的动画,具体可以从Demo中感受
    • 交互优雅,实现了优雅的手势交互,智能的嵌套滚动,智能的输入法交互,具体看Demo
    • 适配全面屏,目前适配了小米,华为,谷歌,OPPO,VIVO,三星,魅族,一加全系全面屏手机
    • 自动监听Activity生命周期,自动释放资源。在Activity直接finish的场景也避免了内存泄漏
    • 很好的易用性,所有的自定义弹窗只需继承对应的类,实现你的布局,然后像Activity那样,在onCreate方法写逻辑即可
    • 性能优异,动画流畅;精心优化的动画,让你很难遇到卡顿场景
    • 能在应用后台弹出(需要申请悬浮窗权限,一行代码即可)
    • 支持androidx
    • 完美支持RTL布局
    • 如果你想要时间选择器和城市选择器,可以使用XPopup扩展功能库XPopupExt: https://github.com/li-xiaojun/XPopupExt

    gitHub地址: https://github.com/li-xiaojun/XPopup/blob/master/app/build.gradle

    1、设计思路:

    设计思路: 综合常见的弹窗场景,我将其分为几类:

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

    2、 演示

    内置弹窗(支持复用已有布局) 列表Center弹窗
    [图片上传失败...(image-ae4861-1597210966261)] [图片上传失败...(image-d4f346-1597210966261)]
    Bottom列表弹窗(手势拖拽,横竖滚动) 自定义Bottom弹窗(天然支持嵌套滚动,多层弹窗)
    [图片上传失败...(image-afc73f-1597210966261) [图片上传失败...(image-3ecbcd-1597210966261)]
    Attach弹窗(动画优雅,智能定位,长按支持) 自定义Attach弹窗(任意方向支持,灵活易用)
    [图片上传失败...(image-20a5dd-1597210966261)] [图片上传失败...(image-910607-1597210966261)]
    Drawer弹窗(手势拖拽,状态栏阴影) 全屏弹窗(可作为Activity替代品,搭配十几个动画使用更佳)
    [图片上传失败...(image-56a795-1597210966261)] [图片上传失败...(image-58b0c7-1597210966261)]
    Position自由定位弹窗(放在屏幕任意地方) 自定义贴在输入法之上的弹窗
    [图片上传失败...(image-8f1935-1597210966261)] [图片上传失败...(image-3acaf5-1597210966261)
    PartShadow局部阴影弹窗 向上向下都可以
    [图片上传失败...(image-24ed88-1597210966261)] [图片上传失败...(image-ec3426-1597210966261)]
    ImageViewer大图浏览弹窗(拖拽自然,如丝般顺滑) 超长图片支持(图像渐变过渡,优雅从容)
    [图片上传失败...(image-e4e6a4-1597210966261)] [图片上传失败...(image-16dd7b-1597210966261)]
    大图浏览弹窗,支持界面自定义 配合ViewPager使用
    [图片上传失败...(image-ae44bc-1597210966261)] [图片上传失败...(image-6f5040-1597210966261)]
    自定义弹窗和自定义动画 内置优雅美观的动画器,可搭配弹窗结合使用
    [图片上传失败...(image-9899e5-1597210966261)] [图片上传失败...(image-e34784-1597210966260)]
    应用后台弹出(一行代码实现权限申请) 联想搜索实现,轻而易举
    [图片上传失败...(image-f165ae-1597210966260)]

    3、快速体验

    Gif录制的有些卡顿,真机预览效果更佳。扫描二维码下载Demo: demo.png

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

    二、使用:

    1、依赖

    implementation 'com.lxj:xpopup:2.0.8'
    

    必须添加的依赖库,版本号在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'
    

    2、使用文档

    具体使用方法全在WIKI中,请查看下面各个章节:

    3、 混淆

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

    相关文章

      网友评论

        本文标题:Android XPopup弹窗

        本文链接:https://www.haomeiwen.com/subject/fwipdktx.html