我正在尝试动态创建按钮,它们的大小和位置各不相同。 我有代码来创建一个不同大小的按钮,但我坚持改变位置。 我正在使用linearlayout并尝试使用setMargins来移动按钮,但它似乎正在改变按钮内的边距。我的代码如下:
public void button(int a, int b) {
newButton = new Button(this);
newButton.setText("HELLO");
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, 0, 0, 0);
ViewGroup.LayoutParams params = layout.getLayoutParams();
params.width = a;
params.height = b;
layout.requestLayout();
layout.addView(newButton, layoutParams);
}
这是我对此的表现:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_marginTop="58dp"
android:layout_toRightOf="@+id/textView1"
android:text="Button" />
<LinearLayout
android:id="@+id/layout"
android:layout_width="50sp"
android:layout_height="40sp"
android:orientation="vertical" >
</LinearLayout>
答案 0 :(得分:1)
您了解LinearLayout是什么以及您使用它的原因是什么?布局的每个孩子都会到位。如果我有一个垂直的LinearLayout,它有3个孩子,它们将在彼此之上。我可以改变他们的引力,使他们被吸引到不同的边缘但是“改变”它的位置是不可能的,这取决于你所说的“改变”。
查看其他布局。您可能想要使用RelativeLayout。
答案 1 :(得分:0)
为什么不使用button.setX(float x)和button.setY(float y)?您需要使用RelativeLayout而不是LinearLayout。它更容易,但它只能在api 11 ...
之后才能使用