在 Jetpack Compose 中,ConstraintLayout 是否仍然优于嵌套的 Column & Row?



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

现在Compose已经出来了,从我的角度来看,ConstraintLayout在Compose中是如此复杂的理解,从我的角度来看,它需要更多的时间来弄清楚ConstraintLayout的视图应该是什么样子,而不是嵌套的ColumnRow

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

简短的回答:不,嵌套的Rows/Columns应该是好的。


Compose旨在减少嵌套布局的惩罚,并允许布局更容易…好吧,组成。View系统需要为您创建的每个View提供可观的开销,因此建议避免不必要地嵌套它们并创建额外的Views。

虽然很难说在没有情况下嵌套Rows和Columns会导致性能问题,而ConstaintLayout可以很好地工作,但当使用嵌套Rows/Columns可以让您更容易地表达您想要的布局时,您不应该立即跳到ConstraintLayout

Compose有效地处理嵌套布局,使它们成为一个伟大的方式设计一个复杂的UI。这是对Android视图的改进,出于性能考虑,你需要避免嵌套布局。

from Android doc

最新更新