Jetpack Compose 资源最佳实践

问题描述 投票:0回答:1

我是 Jetpack Compose 的初学者。到目前为止,我一直在使用 Android-XML,并且有明确的最佳实践,例如代码放在 Java/Kotlin 文件夹中,所有资源都放在 Resource 文件夹中。此外,资源具有配置(屏幕大小、区域设置等)特定文件夹来相应地覆盖资源数据。

但是对于 Jetpack compose 没有明确的文档或指南。我可以理解,

drawables
需要保存在资源文件夹中,但对于其他资源,没有明确的指导方针。

喜欢:尺寸可以直接使用可组合项放置,也可以通过单例对象或 LocalComposition 提供(参考:使用 Jetpack Compose 在 Android 上支持不同的屏幕尺寸),或者可以将它们放置在 dimens.xml 中并通过

dimensionResource
解析.

字符串和颜色也是如此。

由于有很多选择,我不确定在实施中型到大型项目时应遵循哪种最佳实践。

android android-jetpack-compose android-resources
1个回答
0
投票

通过撰写,您需要的许多资源可以/应该/必须转移到代码中。除其他外,这适用于所有 ui 布局和组件、主题和颜色, 动画、大量可绘制对象(包括来自 https://fonts.google.com/icons 的大多数图标)。

现在在撰写中以不同的方式处理设备尺寸。应用程序视口的大小不仅取决于设备的硬件,还可以在用户调整应用程序窗口大小、将应用程序从一个显示器移动到另一个显示器(某些设备有多个显示器)、使用可折叠显示器时随时更改,等等。 xml 文件中的静态配置无法充分解决此问题。相反,您的 Activity 可以在运行时计算

WindowSizeClass
,然后您的可组合项可以使用该值来决定如何显示数据。某些可组合项已经自动为您选择合适的布局,例如
NavigationSuiteScaffold
(底部导航或导航栏)或
ListDetailPaneScaffold
(仅列表或列表和详细信息),具体取决于可用空间。另请参阅 https://developer.android.com/jetpack/compose/layouts/adaptive 了解有关自适应布局主题的更多信息。

另一方面,字符串资源不会被 compose 触及,因此保留在原来的位置。

对于代码中现在的所有配置,您可以选择您喜欢的位置,不依赖于固定文件路径。毕竟,它只是代码,可以像其他东西一样进行

import
编辑。

创建新项目时,您可以使用 Android Studio 的 Empty Activity 模板来比较其中的某些处理方式,尤其是主题和颜色。

© www.soinside.com 2019 - 2024. All rights reserved.