gpt4 book ai didi

android - ConstraintSet 中 clone() 的不同实现有什么区别?

转载 作者:行者123 更新时间:2023-11-30 00:22:30 26 4
gpt4 key购买 nike

根据docs for ConstraintSet , clone() 方法有三种实现方式:

  • void clone(ConstraintLayout constraintLayout)
  • void clone(ConstraintSet set)
  • void clone(Context context, int constraintLayoutId)

文档中对每个版本的解释都有些含糊,所以我不太清楚这三个版本之间的区别以及何时应该使用它们。我已经能够在需要时毫无问题地使用第一个。

最佳答案

ConstraintSet 包含这个私有(private)字段:

private HashMap<Integer, ConstraintSet.Constraint> mConstraints;

三个 clone() 方法中的每一个都将从此 Map 中删除所有现有条目,然后根据您传入的内容填充它。本质上,这些方法中的每一个都会将您调用它们的任何 ConstraintSet 实例变成参数的副本。

void clone(ConstraintSet set)

此版本清除了 mConstraints 映射并使用传入的 ConstraintSet 中的约束重新填充它。

void clone(ConstraintLayout constraintLayout)

此版本清除了 mConstraints 映射并使用生成传入的 ConstraintLayout 副本所需的任何约束重新填充它。

void clone(Context context, int constraintLayoutId)

此版本使用传入的 Context 和布局 id 从布局资源中膨胀一个 ConstraintLayout 实例,然后调用 clone(ConstraintLayout)(上述方法)。

关于android - ConstraintSet 中 clone() 的不同实现有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46025571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com