在Compose之前,使用XML创建复杂的UI时,建议避免嵌套视图(RelativeLayout
和LinearLayout
),并鼓励使用ConstraintLayout
来实现复杂的布局。
现在Compose已经出来了,从我的角度来看,ConstraintLayout
在Compose中是如此复杂的理解,从我的角度来看,它需要更多的时间来弄清楚ConstraintLayout
的视图应该是什么样子,而不是嵌套的Column
和Row
。
老实说,我宁愿使用嵌套的Column
和Row
,而不是ConstraintLayout
,但我不确定它的缺点。
简短的回答:不,嵌套的Row
s/Column
s应该是好的。
Compose旨在减少嵌套布局的惩罚,并允许布局更容易…好吧,组成。View系统需要为您创建的每个View
提供可观的开销,因此建议避免不必要地嵌套它们并创建额外的View
s。
虽然很难说在没有情况下嵌套Row
s和Column
s会导致性能问题,而ConstaintLayout
可以很好地工作,但当使用嵌套Row
s/Column
s可以让您更容易地表达您想要的布局时,您不应该立即跳到ConstraintLayout
。
Compose有效地处理嵌套布局,使它们成为一个伟大的方式设计一个复杂的UI。这是对Android视图的改进,出于性能考虑,你需要避免嵌套布局。
from Android doc