ConstraintLayout 是不是仍然优于 Jetpack Compose 中的嵌套列和行?

Posted

技术标签:

【中文标题】ConstraintLayout 是不是仍然优于 Jetpack Compose 中的嵌套列和行?【英文标题】:Is ConstraintLayout still preferred over nested Column & Row in Jetpack Compose?ConstraintLayout 是否仍然优于 Jetpack Compose 中的嵌套列和行? 【发布时间】:2021-05-09 12:24:44 【问题描述】:

在 Compose 之前,使用 XML 创建复杂的 UI 时,建议避免嵌套视图(RelativeLayoutLinearLayout),并鼓励使用 ConstraintLayout 来实现复杂的布局。

现在 Compose 已经问世了,从我的角度看,Compose 中的 ConstraintLayout 非常难以理解 - 与使用 ConstraintLayout 相比,需要花费更多时间来弄清楚视图应该是什么样子嵌套ColumnRow

老实说,我宁愿在 Compose 中使用嵌套的 ColumnRow 而不是 ConstraintLayout,但我不确定它的缺点。

【问题讨论】:

【参考方案1】:

简答:不,嵌套Rows/Columns 应该没问题。


Compose 旨在减少嵌套布局的损失,并使布局更容易......嗯,组合。 View 系统需要为您创建的每个 View 带来不小的开销,因此建议避免不必要地嵌套它们并创建额外的 Views。

虽然很难说不会出现嵌套Rows 和Columns 会导致ConstaintLayout 可以正常工作的性能问题,但您不应该立即使用嵌套的Rows/Columns 时跳转到ConstraintLayout 可以让您更轻松地表达您想要的布局。

【讨论】:

以上是关于ConstraintLayout 是不是仍然优于 Jetpack Compose 中的嵌套列和行?的主要内容,如果未能解决你的问题,请参考以下文章

在哪些情况下,交叉熵优于均方误差? [关闭]

ConstraintLayout 不缩放以适应各种屏幕尺寸

如何设置 ConstraintLayout End of Top Bottom Sheet

ConstraintLayout:第二个视图捕捉到父视图而不是自定义视图的底部

一分钟学会 ConstraintLayout 之从属性角度理解布局

Android开发 - 掌握ConstraintLayout介绍