在Android開發(fā)中,我們會經(jīng)常寫一些Utils工具性質(zhì)的方法,但是每開一個(gè)項(xiàng)目都要重新寫的話就太造輪子了.
于是乎,小白開始把自己開發(fā)中常用的一些工具方法集合起來(當(dāng)然不是所有方法都是自己寫的).
這個(gè)庫的名字叫Suger,本來是想叫"糖",無奈英語不好,把Sugar寫成Suger.
庫的地址在最下面
這個(gè)庫集成了下面一些方法(只列舉常用的):
Easy way to deal with permission(權(quán)限)
//繼承PermissionActivity或PermissionCompatActivity
class MyActivity : PermissionActivity() {
}
Permission中有所有的危險(xiǎn)權(quán)限組
下面用讀寫權(quán)限舉例
你可以獲取他:
Permission.STORAGE.get(this){
//isPassed是回調(diào)烤送,通過的話是true
isPassed -> if(isPassed) showToast("ok") else showToast("no")
}
你可以指定一段代碼在獲取某個(gè)權(quán)限后執(zhí)行:
Permission.STORAGE.doAfterGet(this){
//只有權(quán)限痛過才會執(zhí)行讼渊,保證安全
showToast("66666")
}
你也可以單獨(dú)檢查是否獲得某個(gè)權(quán)限:
Permission.STORAGE.has()
Easy way to open System Alubm and choose photo(照片)
繼承AlbumPickerActivity
//獲取權(quán)限
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
//存鍵值對,不只是基本類型,復(fù)雜對象也可以
Preference.save("settings") {
"key" - "value"
"key1" - "value1"
//...
}
//獲取鍵值對的值
Preference.get("settings","key" to "defaultValue")
雙擊返回退出App
override onBackPressed(){
val delay: Long = 2000//雙擊間隔2000ms內(nèi)才算
val title = "再按一次退出" //第一次點(diǎn)擊顯示的字符串
val action: () -> Unit = {print("在結(jié)束前可以做事")}
ActivityManager.doubleExit(delay,title,action)
}
//或者這樣用
override onBackPressed(){
ActivityManager.doubleExit{
print("在結(jié)束前可以做事")
}
}
不會連續(xù)彈出的toast
任何對象.toast()
showToast(任何對象)
跳回主線程
inUiThread{
print("我在主線程")
}
狀態(tài)欄
//只作用于5.0以上,實(shí)現(xiàn)沉浸
fun Activity.fullScreen() {...}
/**
* 設(shè)置狀態(tài)欄黑色字體圖標(biāo)
*/
fun Activity.setStatusBarTextBlack(): Boolean {...}
/**
* 設(shè)置狀態(tài)欄白色字體圖標(biāo)
*/
fun Activity.setStatusBarTextWhite(): Boolean {...}
上面是一些比較常用的功能,Suger還有很多其他工具,因?yàn)檫€是小白一枚,很多不好的地方希望大家能指正.