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 时,建议避免嵌套视图(RelativeLayout
和 LinearLayout
),并鼓励使用 ConstraintLayout
来实现复杂的布局。
现在 Compose 已经问世了,从我的角度看,Compose 中的 ConstraintLayout
非常难以理解 - 与使用 ConstraintLayout
相比,需要花费更多时间来弄清楚视图应该是什么样子嵌套Column
和Row
。
老实说,我宁愿在 Compose 中使用嵌套的 Column
和 Row
而不是 ConstraintLayout
,但我不确定它的缺点。
【问题讨论】:
【参考方案1】:简答:不,嵌套Row
s/Column
s 应该没问题。
Compose 旨在减少嵌套布局的损失,并使布局更容易......嗯,组合。 View 系统需要为您创建的每个 View
带来不小的开销,因此建议避免不必要地嵌套它们并创建额外的 View
s。
虽然很难说不会出现嵌套Row
s 和Column
s 会导致ConstaintLayout
可以正常工作的性能问题,但您不应该立即使用嵌套的Row
s/Column
s 时跳转到ConstraintLayout
可以让您更轻松地表达您想要的布局。
【讨论】:
以上是关于ConstraintLayout 是不是仍然优于 Jetpack Compose 中的嵌套列和行?的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 ConstraintLayout End of Top Bottom Sheet
ConstraintLayout:第二个视图捕捉到父视图而不是自定义视图的底部