gpt4 book ai didi

java - 以编程方式在 LinearLayout 中设置边距

转载 作者:bug小助手 更新时间:2023-10-28 10:39:32 24 4
gpt4 key购买 nike

我正在尝试使用 Java(不是 XML)创建一个带有按钮的 LinearLayout,这些按钮可以填满屏幕并有边距。这是没有边距的代码:

LinearLayout buttonsView = new LinearLayout(this);
buttonsView.setOrientation(LinearLayout.VERTICAL);
for (int r = 0; r < 6; ++r) {
Button btn = new Button(this);
btn.setText("A");

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
lp.weight = 1.0f; // This is critical. Doesn't work without it.
buttonsView.addView(btn, lp);
}

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
setContentView(buttonsView, lp);

这样可以正常工作,但是到底如何给按钮留出边距以便它们之间有空间?我尝试使用 LinearLayout.MarginLayoutParams,但它没有 weight 成员,所以它不好。如果你在它的构造函数中传递它 lp 也不起作用。

这不可能吗?因为它看起来确实如此,而且它不会是您只能在 XML 中执行的第一个 Android 布局任务。

最佳答案

这里有一个小代码来完成它:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(30, 20, 30, 0);

Button okButton=new Button(this);
okButton.setText("some text");
ll.addView(okButton, layoutParams);

关于java - 以编程方式在 LinearLayout 中设置边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2481455/

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