基础组件库,包含了MVP、MVVM框架的基础Activity和Fragment,支持沉浸式、双击back键退出应用、侧滑结束Activity、Fragment的back键监听等,总结了项目中用到的所有的自定义View和ViewGroup,总结了一些工具类。后续会不断完善和改进。
- 在Project的build.gradle中添加代码:
allprojects {
repositories {
maven { url 'https://www.jitpack.io' }
}
}
- 添加依赖
dependencies {
//其他代码
implementation 'com.gitee.mudcastles:gxp-base-everything:Tag'
}
或
dependencies {
//其他代码
implementation 'com.github.mudcastles:GXP-BaseEverything:Tag'
}
请使用最新版本!!!
- EventBus:org.greenrobot:eventbus:3.1.1
- 沉浸式:com.gyf.immersionbar:immersionbar:3.0.0 com.gyf.immersionbar:immersionbar-components:3.0.0 com.gyf.immersionbar:immersionbar-ktx:3.0.0
- 权限:com.github.getActivity:XXPermissions:11.6
- RxJava3:io.reactivex.rxjava3:rxjava:3.0.6
- 进度条:com.daimajia.numberprogressbar:library:1.4@aar
- 动画:com.nineoldandroids:library:2.4.0
基库支持MVP和MVVM两种框架,由于MVC框架太过落后且无需封装,因此并未添加MVC的封装。
如果你想使用MVP框架中的Activity或者Fragment,你需要继承 com.peng.gxpbaseeverything.view.activity.mvp
包下的基类。所有基类都默认集成了侧滑退出界面的功能,你可以通过 setSwipeBackEnable(Boolean)
来启用或者禁用此功能。
GXPBaseActivity:无标题栏,内容部分占据全屏。
GXPToolbarActivity:带标题栏,内容部分在占据出标题栏外的所有空间。
GXPDrawerActivity:带侧滑菜单无标题栏,内容部分占据全屏,侧滑菜单自定义。
GXPToolbarDrawerActivity:带标题栏带侧滑菜单,内容部分在占据出标题栏外的所有空间,侧滑菜单自定义。
如果你想使用MVVM框架中的Activity或者Fragment,你需要继承 com.peng.gxpbaseeverything.view.activity.mvvm
包下的基类。所有基类都默认集成了侧滑退出界面的功能,你可以通过 setSwipeBackEnable(Boolean)
来启用或者禁用此功能。
泛型类型是你的ViewBinding,你不必自己构造ViewBinding对象,基类中会帮你构造好,你只需要在对应的回调方法中使用即可。
GXPBaseActivity:无标题栏,内容部分占据全屏。
GXPToolbarActivity:带标题栏,内容部分在占据出标题栏外的所有空间。
GXPDrawerActivity:带侧滑菜单无标题栏,内容部分占据全屏,侧滑菜单自定义。
GXPToolbarDrawerActivity:带标题栏带侧滑菜单,内容部分在占据出标题栏外的所有空间,侧滑菜单自定义。
如果你想要跨Activity共享ViewModel,你可以继承 com.peng.gxpbaseeverything.view.GXPBaseApplication
,其内部构造了一个appViewModelStore
对象,你可以使用此对象来存放ViewModel,这样你就能在不同的页面使用同一个ViewModel了。
-
CrashHandler:异常捕获器,用于在发生未捕获的异常时把异常崩溃日志写入到本地。
注意: 如运行环境未使用分区存储,该功能需要文件写入权限,请手动申请该权限,日志存储位置为“根目录->Crash->log”。在启用分区存储的设备上无需申请权限,日志存储位置为“Documents->Crash->log”。
使用时需要在Application的onCreate方法中添加以下代码:CrashHandler.getInstance().init(getApplicationContext());