当前位置: 首页 > article >正文

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经常使用的扩展库大抵如此,后续有变则再新增进来。


http://www.kler.cn/a/234049.html

相关文章:

  • idea设置控制台日志输出自动换行
  • Move AI技术浅析(二):输入与预处理
  • js事件机制详解
  • 如何根据一系列提交文件,匹配对应的git提交记录?用ai
  • 【C++语言】多态
  • ARM异常处理 M33
  • WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体
  • HTML5+CSS3+移动web——HTML 基础
  • 计算机网络期末复习要点(谢希仁第8版)抱佛脚通用
  • CodeWave学习笔记--博物馆预约管理系统
  • [C#] 如何对列表,字典等进行排序?
  • 4、解构三个重要的Pipeline(SD-Inpainting, ControlNet, AnimateDiff) [代码级手把手解析diffusers库]
  • redis过期淘汰策略、数据过期策略与持久化方式
  • Multisim14.0仿真(五十五)汽车转向灯设计
  • 骨科器械行业分析:市场规模为360亿元
  • 7 scala的类构造器
  • 物联网数据隐私保护技术
  • Java:JDK8新特性(Stream流)、File类、递归 --黑马笔记
  • MySQL数据库应用实验报告——实验1 表结构创建
  • 疑似针对安全研究人员的窃密与勒索
  • Element-ui date-picker组件报错 date.getHours is not a function
  • Lua: 一门轻量级、高效的脚本语言
  • HiveSQL——借助聚合函数与case when行转列
  • 【Java】案例:检测MySQL是否存在某数据库,没有则创建
  • DC-8靶机渗透详细流程
  • 怎么用postman调用webservice(反推SoapUI)