小编clu*_*ess的帖子

如何以编程方式访问ConstraintLayout中视图的当前约束?

我可以使用ConstraintSet在ConstraintLayout中以编程方式修改视图的约束,但是在应用修改之前,我想测试它是否尚未完成。为此,我需要以编程方式访问ConstraintLayout中视图的当前约束。

例如,在这里我想删除TextView“标题”的顶部和TextView视图“ subtitle”的底部之间的约束。然后将TextView“标题”的顶部约束到“ videoView”的底部。但是首先,我需要检查TextView的“标题”是否尚未限制在“ videoView”的底部(从android的官方网站修改的代码)。请注意,我无法在此网站上插入HTML的最后一行,在尖括号中为/android.support.constraint.ConstraintLayout。

public class MainActivity extends AppCompatActivity {
ConstraintSet mConstraintSet = new ConstraintSet(); // create a Constraint Set
ConstraintLayout mConstraintLayout; // cache the ConstraintLayout

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mConstraintLayout = (ConstraintLayout) findViewById(R.id.root);
    mConstraintSet.clone(mConstraintLayout); // get constraints from ConstraintSet
}

public void userDoesSomething(View v) {
    //test if title has already been constrained to bottom of videoView
    if (mConstraintLayout 'TITLE' IS NOT CONSTRAINED TO THE BOTTOM OF 'VIDEOVIEW'){
        mConstraintSet.connect(R.id.Title, ConstraintSet.TOP, R.id.videoView, ConstraintSet.BOTTOM); // …
Run Code Online (Sandbox Code Playgroud)

android android-layoutparams android-constraintlayout

5
推荐指数
1
解决办法
3858
查看次数