Jetpack Compose Accompanist最近的更新-2023年8月25日
这篇文章更新了Jetpack Compose Accompanist库的情况,介绍了其目的和最新上传的功能,包括Pager、Flow Layout、Navigation Animation和Insets-UI。同时,提到了对一些库未来发展的讨论。
github地址
https://github.com/google/accompanist
文档地址
https://google.github.io/accompanist
标记为废弃组件如下
System UI Controller
Material/AppCompat Theme Adapters
Pager Indicators
Placeholder
WebView
这些库都比较小,如果你满意它们的当前功能,我们建议你复制它们的实现并根据自己的需求进行定制。这些库将在两个Compose BOM版本中以废弃状态保留,然后将被删除。
以下库已经被认为是功能齐全的,不会再开发新功能:
Drawable Painter
Permissions
而Accompanist中的其他库仍然处于实验性阶段,包括Adaptive
、Test Harness
和Navigation Material
。
SystemUIController
SystemUIController
库简化系统UI控制,但引发问题,将被废弃。建议使用新的Activity.enableEdgeToEdge
方法实现边缘到边缘效果和更改系统栏颜色。对于其他用途,请迁移到WindowInsetsControllerCompat
或窗口API。这将确保更好的性能和避免不一致性。
https://developer.android.com/reference/androidx/core/view/WindowInsetsControllerCompat
从SystemUIController
迁移到WindowInsetsControllerCompat
的示例:
https://github.com/android/nowinandroid/pull/817
AppCompat和Material Theme Adapters
AppCompat和Material Theme Adapters是用于迁移到Compose的辅助库。它们接受现有的XML主题并生成Compose主题,避免为视图和Compose实现两个版本的主题。
建议使用Material Theme Builder工具生成匹配的XML和Compose主题,以提高效率。 Material 3不断发展,目前这些库无法跟上新属性的更新,因此建议使用设计工具生成主题。查看“将XML主题迁移到Compose”以获取更多信息。
https://m3.material.io/theme-builder
https://developer.android.com/jetpack/compose/designsystems/material3#material-theming
Pager Indicator, Placeholder & WebView
Compose稳定,API强大,创建自定义小部件比以前的视图系统简单。我们停止在Accompanist中添加自定义小部件,包括Pager Indicator、Placeholder和WebView。Compose使自定义小部件容易实现,我们不再支持它们是因为需要支持足够的自定义选项,而自己实现可精简。另一个原因是我们认为在Accompanist中包含这些小部件可能阻碍社区开发他们自己的。
建议:使用我们的实现为起点,根据需要定制,或创建自己的自定义实现。
DrawablePainter
DrawablePainter是一个广泛使用的库,但可能不会被纳入Compose,因为我们不打算支持Compose中的填充可绘制规范。我们认为Compose提供了更好的API,使很多可绘制支持的功能变得过时。虽然DrawablePainter不支持层列表,但如果在主要Compose库中,就必须支持各种可绘制对象。所以,我们目前将其作为功能完整的标记留在Accompanist中。
Permissions
我们仍在评估如何在平台级别最好处理Android权限和Compose。在这个决策过程中,我们愿意让Accompanist解决方案保持在Accompanist中。我们不会为其开发新功能,但会修复可能出现的任何关键问题。