Android ConstraintSet中克隆()的不同实现之间有什么区别?

Android ConstraintSet中克隆()的不同实现之间有什么区别?,android,methods,android-constraintlayout,Android,Methods,Android Constraintlayout,根据,有三种clone()方法的实现: void clone(ConstraintLayout ConstraintLayout) 无效克隆(约束集) void克隆(上下文,int-constraintLayoutId) 文档中对每个版本的解释都有点模糊,所以我不完全清楚这三个版本之间的区别以及我应该何时使用它们。无论何时需要,我都可以毫无问题地使用第一个约束集。ConstraintSet包括以下私有字段: private HashMap<Integer, ConstraintSet.

根据,有三种
clone()
方法的实现:

  • void clone(ConstraintLayout ConstraintLayout)
  • 无效克隆(约束集)
  • void克隆(上下文,int-constraintLayoutId)

文档中对每个版本的解释都有点模糊,所以我不完全清楚这三个版本之间的区别以及我应该何时使用它们。无论何时需要,我都可以毫无问题地使用第一个约束集。

ConstraintSet
包括以下私有字段:

private HashMap<Integer, ConstraintSet.Constraint> mConstraints;
私有HashMap mConstraints;
三个
clone()
方法中的每一个都将删除此
Map
中的所有现有条目,然后根据传入的内容对其进行备份。本质上,这些方法中的每一个都会将调用它们的
ConstraintSet
实例转换为参数的副本

无效克隆(约束集)

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

void clone(ConstraintLayout ConstraintLayout)

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

void克隆(上下文,int-constraintLayoutId)

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