在Android开发中,我们会经常写一些Utils工具性质的方法,但是每开一个项目都要重新写的话就太造轮子了.
于是乎,小白开始把自己开发中常用的一些工具方法集合起来(当然不是所有方法都是自己写的).
这个库的名字叫Suger,本来是想叫”糖”,无奈英语不好,把Sugar写成Suger.
库的地址在最下面
这个库集成了下面一些方法(只列举常用的):
Easy way to deal with permission(权限)
//继承PermissionActivity或PermissionCompatActivity
class MyActivity : PermissionActivity() {
}
Permission中有所有的危险权限组
下面用读写权限举例
你可以获取他:
Permission.STORAGE.get(this){
//isPassed是回调,通过的话是true
isPassed -> if(isPassed) showToast("ok") else showToast("no")
}
你可以指定一段代码在获取某个权限后执行:
Permission.STORAGE.doAfterGet(this){
//只有权限痛过才会执行,保证安全
showToast("66666")
}
你也可以单独检查是否获得某个权限:
Permission.STORAGE.has()
Easy way to open System Alubm and choose photo(照片)
继承AlbumPickerActivity
//获取权限
Permission.STORAGE.doAfterGet(this){
//选择照片
AlbumPicker.with(this).selectedPicAndHandle { path ->
print("this is the path of the photo you choose $path")
}
}
Easy way to deil with preference
//存键值对,不只是基本类型,复杂对象也可以
Preference.save("settings") {
"key" - "value"
"key1" - "value1"
//...
}
//获取键值对的值
Preference.get("settings","key" to "defaultValue")
双击返回退出App
override onBackPressed(){
val delay: Long = 2000//双击间隔2000ms内才算
val title = "再按一次退出" //第一次点击显示的字符串
val action: () -> Unit = {print("在结束前可以做事")}
ActivityManager.doubleExit(delay,title,action)
}
//或者这样用
override onBackPressed(){
ActivityManager.doubleExit{
print("在结束前可以做事")
}
}
不会连续弹出的toast
任何对象.toast()
showToast(任何对象)
跳回主线程
inUiThread{
print("我在主线程")
}
状态栏
//只作用于5.0以上,实现沉浸
fun Activity.fullScreen() {...}
/**
* 设置状态栏黑色字体图标
*/
fun Activity.setStatusBarTextBlack(): Boolean {...}
/**
* 设置状态栏白色字体图标
*/
fun Activity.setStatusBarTextWhite(): Boolean {...}
上面是一些比较常用的功能,Suger还有很多其他工具,因为还是小白一枚,很多不好的地方希望大家能指正.