小编Dam*_*yev的帖子

在ConstraintLayout中以编程方式删除/添加约束

我想根据某些条件以编程方式删除和添加约束.以下是截图:

我想删除它,但在代码中:

这是在顶部删除约束的按钮

所以想要以编程方式实现同​​样的效果

这是我试过的代码:

    if (advertisements.size() > 0) { //my own condition
        ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) btnCreateAd.getLayoutParams();
        layoutParams.topToBottom = R.id.imvEmpty; //the imageview that is in center of the view
        btnCreateAd.setLayoutParams(layoutParams);
        recyclerView.setVisibility(View.VISIBLE);
        txvMyAdEmptyText.setVisibility(View.GONE);
        imvEmpty.setVisibility(View.GONE);
        adapter.setList(advertisements);
        adapter.notifyDataSetChanged();
    } else {
        ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) btnCreateAd.getLayoutParams();
        layoutParams.topToBottom = -1; //here i am trying to remove top constraint but it doesn't work
        btnCreateAd.setLayoutParams(layoutParams);

        recyclerView.setVisibility(View.GONE);
        txvMyAdEmptyText.setVisibility(View.VISIBLE);
        imvEmpty.setVisibility(View.VISIBLE);
        adapter.setList(new ArrayList<Advertisement>());
    }
    mConstraintView.invalidate(); //this is my constraint view
Run Code Online (Sandbox Code Playgroud)

编辑

我也尝试过使用 ConstraintSet,但结果甚至不同,我的RecyclerView(设置为父视图的边界)正在消失

 ConstraintSet set = new …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-layoutparams android-constraintlayout

31
推荐指数
3
解决办法
2万
查看次数