Mah*_*alv 6 android android-jetpack-compose
Arch 组件中新增的 Jetpack compose 组件就像 Flutter Ui 制作一样。
它是如何制作 Ui 的?
它是否使用了像 Skia 这样的原生代码引擎,还是仍然像以前一样遵循 ViewGroup 的方式?
Poi*_*ull 16
Compose 创建一个当前名为 的视图AndroidComposeView,它继承了 ViewGroup,并在其画布上绘制了小部件树。它还处理此视图的运动/键盘事件。
由于实现细节,此视图中可能添加了更多辅助视图,但基本上对于 Compose 的“小部件”,您不会在视图层次结构中看到经典视图。布局检查器目前对 Compose 没有帮助 - 您可以尝试一下,但您不会看到您的小部件。
开发人员承诺能够创建自己的自定义小部件,这些小部件可以直接在 Canvas 上绘制,为自己或子项设置布局,或处理输入事件。
然而,Canvas这里使用的和许多其他类都不是标准的框架类。例如,Canvas for Compose 在 Kotlin 中重新定义。类似的方式有新的Paint,Shape等新课程。他们在内部使用框架类进行工作,但这是实现细节。绘图时,您将使用这些新类。
由于 Compose 是一个库,而不是原生在 Android 设备上,因此该库包含在每个使用 Compose 的应用程序中。此外,这里不涉及本机代码,所有内容都在 Kotlin 中完成,并成为您应用的 dexed 代码的一部分。通过使用 Compose,您的应用程序将不会包含任何额外的本机库(可能,如果创作者不改变主意的话)。
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |