一、前言
- github项目地址:BasicLibrary
BasicUI是一些常用的Android UI组件和一些实用工具类封装,提高Android的开发效率
使用文档链接:github.com/Peakmain/Ba…
How to
- Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Step 2. Add the dependency
implementation 'com.github.Peakmain:BasicLibrary:+'
-
Step 3.some probleam
如果你的gradle版本比3.5.3高,可能会出现以下几个问题:
1、Entry name 'AndroidManifest.xml' collided
解决办法:在gradle.properties添加以下代码
android.useNewApkCreator=false
2、如果安装失败,用adb install安装报错提示如下
failed to install app-debug.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl1335956833.tmp/base.apk: Corrupt XML binary file]
解决办法:在添加依赖的build.gradle中添加以下代码
android{ packagingOptions { exclude 'AndroidManifest.xml' } }
二、效果图
三、使用
1. 注册权限弹窗事件监听
- 定义一个
IPermissionPopupListener
对象,并注册到权限处理管理器中 - 该监听器会处理权限弹窗的显示与隐藏。
// 定义一个全局的权限弹窗监听器变量
var locationListener: IPermissionPopupListener? = null
// 初始化并注册监听器
locationListener = AtPermissionUtils(activity).locationListener
PermissionHandlerManager.instance.registerListener(
PermissionMapConstants.PermissionTag.LOCATION,
locationListener!! // 注册相机权限的弹窗监听器
)
class AtPermissionUtils(val activity: Activity?) {
val locationListener = createRequestListener(
"位置权限使用说明",
"开启定位权限,为您提供酒店推荐服务。"
)
private fun createRequestListener(title: String, message: String): IPermissionPopupListener {
return object : IPermissionPopupListener {
private val utils by lazy {
PkToastUtils.build(activity).apply {
setTitle(title)
.setMessage(message)
}
}
override fun onShowPermissionPopup() {
utils
.show()
}
override fun onHidePermissionPopup() {
utils.dismiss()
}
}
}
}
2. 创建权限弹窗监听器
创建具体的权限请求监听器
class AtPermissionUtils(val activity: Activity?) {
// 创建一个用于显示权限请求弹窗的监听器
val locationListener = createRequestListener(
"位置权限使用说明", // 弹窗标题
"开启定位权限,为您提供酒店推荐服务。" // 弹窗消息
)
// 创建权限请求监听器的方法
private fun createRequestListener(title: String, message: String): IPermissionPopupListener {
return object : IPermissionPopupListener {
private val utils by lazy {
PkToastUtils.build(activity).apply {
setTitle(title) // 设置弹窗标题
setMessage(message) // 设置弹窗消息
}
}
// 当弹窗显示时调用
override fun onShowPermissionPopup() {
utils.show() // 显示弹窗
}
// 当弹窗隐藏时调用
override fun onHidePermissionPopup() {
utils.dismiss() // 隐藏弹窗
}
}
}
}
3. 页面销毁时取消注册监听器
// 页面销毁时取消注册监听器
PermissionHandlerManager.instance.unregisterListener(
PermissionMapConstants.PermissionTag.LOCATION,
locationListener
)