【问题标题】:Android - Resize UI widget created dynamicallyAndroid - 调整动态创建的 UI 小部件的大小
【发布时间】:2017-09-17 18:47:02
【问题描述】:

我尝试在 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);
    }
}

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

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

非常感谢!

查尔斯

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢,没看懂size也在constraintSet里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多