gpt4 book ai didi

android - ConstraintSet.connect() 边距参数是 px 还是 dp?

转载 作者:行者123 更新时间:2023-12-02 13:40:39 30 4
gpt4 key购买 nike

val margin = 8
ConstraintSet().apply {
connect(anId, ConstraintSet.START, anotherId, ConstraintSet.START, margin)
}

边距是作为像素还是密度相关像素应用的?

网络上散布的各种文章和杜撰的知识似乎在其中一个方面并不一致。我正在寻找官方文档或来源证据。

最佳答案

margin 参数应以像素为单位提供

我最终跟踪了 ConstraintSet.applyTo(ConstraintLayout)ConstraintSet.applyToInternal(ConstraintLayout) 并发现这里,ConstraintLayout< 的每个子级 将其 LayoutParams 复制并传递给 ConstraintSet.Constraint.applyTo(LayoutParams)。然后将所有参数(不加修改)从 ConstraintSet.Constraint 复制到 LayoutParams 中,然后将修改后的 LayoutParams 分配回子级。我认为这是具体的证据,表明提供的边距参数应遵循 LayoutParams 规则。

在 ConstraintSet.java

    this.applyToInternal(constraintLayout);
constraintLayout.setConstraintSet((ConstraintSet)null); }

位于 applyToInternal(ConstraintLayout) 声明

    int count = constraintLayout.getChildCount();

//...

LayoutParams param;
for(int i = 0; i < count; ++i) {
View view = constraintLayout.getChildAt(i);
//...
param = (LayoutParams)view.getLayoutParams();
constraint.applyTo(param);
view.setLayoutParams(param);
//...
}

//...

位于 applyTo(LayoutParams) 声明

    //...
param.leftMargin = this.leftMargin;
param.rightMargin = this.rightMargin;
param.topMargin = this.topMargin;
param.bottomMargin = this.bottomMargin;
//...

关于android - ConstraintSet.connect() 边距参数是 px 还是 dp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56265130/

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