Android - 调整动态创建的 UI 小部件

标签 android android-layout android-constraintlayout mobile-development

我尝试在 Java 中动态创建一个按钮并添加一些约束以将其定位在我的 constrainLayout 的中心。所以我写了这段代码:

import android.app.Activity;
import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.support.constraint.ConstraintSet;
import android.widget.Button;

public class SelectGameActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_select_game);

    ConstraintSet constraintSet = new ConstraintSet();
    ConstraintLayout constraintLayout = findViewById(R.id.constraintLayout);
    constraintSet.clone(constraintLayout);

    Button button = new Button(this);
    button.setText("test");
    button.setId(213);
    constraintLayout.addView(button);

    constraintSet.connect(button.getId(), ConstraintSet.LEFT, R.id.constraintLayout, ConstraintSet.LEFT);
    constraintSet.connect(button.getId(), ConstraintSet.RIGHT, R.id.constraintLayout, ConstraintSet.RIGHT);
    constraintSet.connect(button.getId(), ConstraintSet.TOP, R.id.constraintLayout, ConstraintSet.TOP);
    constraintSet.connect(button.getId(), ConstraintSet.BOTTOM, R.id.constraintLayout, ConstraintSet.BOTTOM);
    constraintSet.applyTo(constraintLayout);
    }
}

它可以工作,但是按钮会填满整个屏幕:

enter image description here

我认为这是因为我的按钮没有任何特定的高度和宽度。我尝试了几个代码来给它一个大小但没有效果。有人可以给我一些提示以正确调整我的按钮大小吗?

非常感谢!

查尔斯

最佳答案

尝试将按钮的尺寸设置为 WRAP_CONTENT,如下所示:

    constraintSet.constrainHeight(button.getId(), ConstraintSet.WRAP_CONTENT);
    constraintSet.constrainWidth(button.getId(), ConstraintSet.WRAP_CONTENT);

关于Android - 调整动态创建的 UI 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267665/

相关文章:

android - ConstraintLayout 内容形状在滚动时改变

android - Recycler View 中的约束集动画动画不正确

Android ConstraintLayout - 两个布局的顶部约束

Android:ANR 输入调度超时

java - Android - 如何每分钟运行一段代码(与设备时间同步)

android - 格式化 XML 以在 TextView 中显示?

android - 如何将 RelativeLayout 添加为菜单项 - Android

android - 上传前压缩相机图像

android - 在 Android Wear 上实现 GridViewPager 的正确方法是什么?

android - 以编程方式与在 XML 中创建 Android 布局时不同的宽度/重量