我正在以编程方式创建一个LinearLayout,我在这个布局中添加了三个按钮,但是它们在另一个上面显示了一个。
如何在线显示按钮?
阅读我可能已经明白我需要设置一个LayoutParams但是我没弄明白怎么做..
我已尝试过这个,但它并没有成功。
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
);
ll.addView(b1, layoutParams);
ll.addView(b2, layoutParams);
ll.addView(b3, layoutParams);
感谢您的帮助!
修改
可能我需要添加更多细节。
我在布局中也有其他东西,但我没关系,我为按钮创建了一个额外的布局。
现在按钮排成一行,但它们的宽度不同..:/
我试过这个,但没有帮助..
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
1f
);
答案 0 :(得分:3)
ll.setOrientation(LinearLayout.HORIZONTAL);
允许您在水平线对齐中设置按钮。
但要为所有三个按钮提供平衡的空间。您必须将所有三个weight
对象的Button
属性设置为1
。
编辑:
对所有按钮执行此操作。
LinearLayout.LayoutParams params = button.getLayoutParams();
params.weight = 1;
button.setLayoutParams(params);
设置所有按钮的重量。
此致 Aqif Hamid
答案 1 :(得分:2)
试试这个:
ll.setOrientation(LinearLayout.HORIZONTAL);
答案 2 :(得分:0)
所有MATCH_PARENT都应该有宽度或高度的LayoutParams.WRAP_CONTENT(根据LinearLayout方向至少有一个)
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
答案 3 :(得分:0)
试一试:
LinearLayout gvDivisao = (LinearLayout) findViewById(R.id.gvDivisao);
LayoutInflater inflater = getLayoutInflater();
LayoutParams btDivLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f);
Button btDivA = (Button)inflater.inflate(R.layout.button_divisao, null);
btDivA.setText("A");
gvDivisao.addView( btDivA, btDivLayoutParams);