我使用 LinearLayout 创建了一个对话框,在这个对话框中,我有一个按钮。我想将其宽度设置为 Dialog 宽度的 50%,但无论我做什么,按钮仍会填充整个宽度。主要问题似乎是我无法以编程方式设置按钮的权重。我尝试创建第二个水平线性布局,它将权重设置为 0.5f 的按钮(父级的 weightSum 为 1),但这并没有改变任何东西。如何将按钮设置为宽度的一半?
我查看了所有其他问题,但其中大多数都使用 xml,因此它们不相关,而以编程方式解决它的问题是使用以像素为单位的硬编码值,这显然是问题的错误解决方案。
编辑:添加一些代码
LinearLayout linearLayout = new LinearLayout(mContext);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setWeightSum(1);
// I use these params when I call addContentView
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
testButton = new Button(mContext);
testButton.setText("Test");
testButton.setId(1);
testButton.setWidth(0);
testButton.setGravity(Gravity.CENTER);
LinearLayout buttonLayout = new LinearLayout(mContext);
butonLayout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 0.5f);
testButton.setLayoutParams(buttonParams);
buttonLayout.addView(testButton);
linearLayout.addView(buttonLayout);
...
this.addContentView(scrollView, layoutParams);