Jetpack Compose常用工具包推荐
跟常规的View体系一样,Compose在扩展库方面也获得了很多官方支持。以下扩展库,如果没有特殊说明,都在官方仓库https://google.github.io/accompanist/或https://github.com/google/accompanist。
Insets
作用:设置 WindowsInsets
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-insets:<version>"
// If using insets-ui
implementation "com.google.accompanist:accompanist-insets-ui:<version>"
}
System UI Controller
作用:设置系统状态栏的颜色和显示隐藏
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-systemuicontroller:<version>"
}
AppCompat Theme Adapter
作用:引用 AppCompat 的 xml 形式主题
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-appcompat-theme:<version>"
}
Pager
作用:类似 Android 里面的 ViewPager
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-pager:<version>"
// If using indicators, also depend on
implementation "com.google.accompanist:accompanist-pager-indicators:<version>"
}
Permissions
作用:Compose中的权限请求
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-permissions:<version>"
}
Placeholder
作用:更简单的使用数据未加载时的占位符
配置方式:
repositories {
mavenCentral()
}
dependencies {
// If you're using Material, use accompanist-placeholder-material
implementation "com.google.accompanist:accompanist-placeholder-material:<version>"
// Otherwise use the foundation version
implementation "com.google.accompanist:accompanist-placeholder:<version>"
}
Flow Layouts
作用:让工程可引用Flexbox-line 布局
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-flowlayout:<version>"
}
Navigation-Animation
作用:作用于导航的动画
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-navigation-animation:<version>"
}
Navigation-Material
作用:提供Compose Material 支持,比如 model、bottom、sheets等等。
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-navigation-material:<version>"
}
Drawable Painter
作用:可使工程更灵活的使用 Android Drabables
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-drawablepainter:<version>"
}
Swipe to Refresh
作用:下拉刷新,类似于View体系下的 SwipeRefreshLayout
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-swiperefresh:<version>"
}
WebView
作用:类似于类似于View体系下的WebView,加载js页面并与其交互等。
配置方式:
repositories {
mavenCentral()
}
dependencies {
implementation "com.google.accompanist:accompanist-webview:<version>"
}
Coil
作用:图片加载,经测试,比Glide有更优秀的内存占用,强烈推荐!
优势:Coil完全使用Kotlin编写,其占用的内存大概是Glide的一半其更适用于采用Kotlin开发的Android项目。
(注意这个库并不是Coil库,而是Google封装了Coil用于在Jetpack compose中使用)
地址:点我
配置方式:
implementation "com.google.accompanist:accompanist-coil:0.11.1"
lifecycle-viewmodel-compose
作用:可供使用ViewModel(),对代码进行MVVM架构(这样说可能不太严谨)。
配置方式:
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07'
数据流Flow
Compose可以在不导入依赖的情况下使用Flow,用法基本与kotlin相同。这里不做赘述。
总结,Compose经常使用的扩展库大抵如此,后续有变则再新增进来。