• Stars
    star
    7,689
  • Rank 4,935 (Top 0.1 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔥XPopup2.0版本重磅来袭,2倍以上性能提升,带来可观的动画性能优化和交互细节的提升!!!功能强大,交互优雅,动画丝滑的通用弹窗!可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件,自带十几种效果良好的动画, 支持完全的UI和动画自定义!(Powerful and Beautiful Popup for Android,can absolutely replace Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner. With built-in animators , very easy to custom popup view.)

XPopup

国内Gitee镜像地址:https://gitee.com/lxj_gitee/XPopup

好站推荐

  1. 全网价格最低的公众号和小程序微商城。官网:https://www.xingke.vip
  2. 稳定唯屁恩上网工具推荐:https://tg803.cc/#/register?code=zCYK1QzU

中文 | English

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

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

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

演示

内置弹窗(支持复用已有布局) 列表Center弹窗
Bottom列表弹窗(手势拖拽,横竖滚动) 自定义Bottom弹窗(天然支持嵌套滚动,多层弹窗)
Attach弹窗(动画优雅,智能定位,长按支持) 自定义Attach弹窗(任意方向支持,灵活易用)
Drawer弹窗(手势拖拽,状态栏阴影) 全屏弹窗(可作为Activity替代品,搭配十几个动画使用更佳)
Position自由定位弹窗(放在屏幕任意地方) 自定义贴在输入法之上的弹窗
PartShadow局部阴影弹窗 向上向下都可以
ImageViewer大图浏览弹窗(拖拽自然,如丝般顺滑) 超长图片,永不OOM(图像渐变过渡,优雅从容)
大图浏览弹窗,支持界面自定义 配合ViewPager使用
自定义弹窗和自定义动画 内置优雅美观的动画器,可搭配弹窗结合使用
应用后台弹出(一行代码实现权限申请) 联想搜索实现,轻而易举
气泡弹窗,横向和竖向已准备好!

快速体验

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

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

Gradle

implementation 'com.github.li-xiaojun:XPopup:版本号看上面'

jitpack还要求在工程根目录的build.gradle中添加如下:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

其中编译版本必须 >= 29:

compileSdkVersion 29

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

implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'

xpopup依赖了subsampling-scale-image-view, 如果你也依赖了这个库并且版本冲突,可以做个exclude即可:

implementation ('com.github.li-xiaojun:XPopup:版本号看上面'){
  exclude group: "com.davemorrissey.labs", module: "subsampling-scale-image-view-androidx"
}

使用文档

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

混淆

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

谁在用XPopup

我本人很希望您能点击这里附上使用这个库的App名或者公司名,这样会给我更大的动力和热情去维护这个类库。

根据热心朋友提供的信息,目前使用XPopup的产品和公司有(70+):

打个赏

如果你觉得我帮助到了你,节省了你的时间,可以对我进行打赏(打赏时可以附上自己的大名和Github地址),金额随意,以表支持。

名字 Github地址
Alfred
LOPER7 https://github.com/loperSeven
microshow(RxFFmpeg作者) https://github.com/microshow

阿里云链接

如果有朋友购买阿里云服务器,可以点我的链接进入:

https://www.aliyun.com/minisite/goods?userCode=bak7qpav

有大量的代金券和折扣!!!

ECS-1核2G40G硬盘1M带宽 : 91元/年

ECS-2核4G40G硬盘1M带宽 : 414元/年

ECS-4核8G40G硬盘5M带宽 : 1046元/年

更多产品点击链接进入查看。。。

联系方式

Android开发交流群:783659607

QQ Email: [email protected]

QQ: 16167479

Licenses

 Copyright 2019 li-xiaojun

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.

More Repositories

1

AndroidKTX

🔥Some very useful kotlin extensions for speed android development!好用到爆的Kotlin扩展,加速你的Android开发!
C
770
star
2

XPopupExt

XPopup扩展功能库,基于XPopup强大的弹窗能力和PickerView的选择器逻辑,封装了时间选择器弹窗、城市选择器弹窗和条件选择器。
Java
332
star
3

Matisse

基于知乎Matisse增强,一行代码实现图片/视频选择,裁剪,微信同款视频录制和拍照,无需权限申请!
Java
198
star
4

StateLayout

一种无侵入,使用简单,无需修改现有布局,动态切换布局状态(Loading/Error/Empty/Content)的解决方案。
Kotlin
176
star
5

XRefreshLayout

【已过时,不再更新,请使用更强大的SmartRefreshLayout!】A refresh layout(无侵入下拉刷新和加载布局), can refresh RecyclerView for all LayoutManager, NestedScrollView。
Java
127
star
6

ShootPlane

微信打飞机的简易版,主要用Android的属性动画实现!
Java
113
star
7

OkhttpDownloader

a multi-thread downloader for okhttp!
Java
86
star
8

AlipayUtil

[不再维护!!!]支付宝支付SDK的封装,只需要调用一个方法,传入参数和回调接口即可,像请求网络一样简单!
Java
58
star
9

MarqueeView

垂直跑马灯效果。
Java
47
star
10

OkHttpEngine

A simple wrapper for OkHttp!
Java
38
star
11

EasyAdapter

An simplify and practical version for hongyangAndroid [baseAdapter],重构了代码,并适配Kotlin。
Kotlin
33
star
12

LiveGiftPlayer

直播礼物特效播放器,支持MP4(支持4个方向的透明通道)和WEBP。
Java
23
star
13

DragPanel

A nice vertical drag layout, a bit like BottomSheet, but with strong customization!
Java
22
star
14

ImageGridView

【不再维护】微博,微信九宫格图片布局,搭配XPopup的大图浏览弹窗,体验好到飞起。
Java
19
star
15

XPermission

一行代码进行权限申请,用回调处理结果,轻量无依赖!
Java
19
star
16

DragPhotoViewer

【已过时,不再更新,请使用更强大的XPopup!】完全模仿掘金Android App大图浏览拖拽效果!
Java
18
star
17

QingBlogFrontend

Qing博客系统前端,基于Vue2套件,axios, ElementUI构建的单页应用!
Vue
14
star
18

RippleLayout

A simple ripple effect!
Java
13
star
19

flutter_gank

A flutter client for http://gank.io/
Dart
12
star
20

QingBlogBackend

Qing博客系统后台,基于Koa2和NodeJs编写。
JavaScript
4
star
21

QingFramework

采用Kotlin封装的Android快速开发框架,包括基于LiveData的MVVM架构和通用组件。
Kotlin
4
star
22

li-xiaojun.github.io

My personal Github pages test!
HTML
3
star
23

flutter_study

for study flutter.
Dart
3
star
24

crypto-wrapper

A simple wrapper for node crypto module, zero dependency, easy to use!
JavaScript
3
star
25

multipage-vue-spa

基于vue-cli重构的大型多页面SPA项目架构。
JavaScript
1
star
26

FrameAnimationView

一个帧动画实现,用来替换官方的AnimationDrawable,解决内存溢出!
Kotlin
1
star
27

GayHub

A Github Android Client ! 【Developping...】
Kotlin
1
star
28

ffshare

随启随用的文件分享工具,一条命令即可启动!
JavaScript
1
star