我创建了一个带有database
调用的布局,其中button
将为database
. 就像我需要的buttons
那样创建,我还发现了如何设置layout_width
,layout_height
但是所有这些buttons
都放置在相同的位置并相互重叠,以便只能button
访问最后创建的。我用于创建buttons
外观的代码如下:
Button bt = new Button(this);
bt.setText("Button Title");
bt.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
linerLayout.addView(bt);
生成按钮后,活动看起来像这样:
我查看了可用于按钮的每种方法,但没有找到任何定义位置的方法。我只是想到了以下方法:
bt.layout(l, t, r, b);
但不确切知道如何使用它,并认为可能有一种更简单的方法来解决这个问题。谁知道解决方法?!
更改代码
我只是尝试设置布局参数,如“Chen doron”中解释的那样。我的 xml 文件中有一个相对布局:
<RelativeLayout
android:id="@+id/llActOver"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2" >
</RelativeLayout>
并像这样格式化生成的按钮:
Button bt = new Button(context);
bt.setText(c.getString(iDef));
fontClass.setFont(bt);
//RelativeLayout placeholder = new RelativeLayout(context);
RelativeLayout.LayoutParams layoutParam =
new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
if(rowCount < 1){
layoutParam.addRule(RelativeLayout.ALIGN_PARENT_TOP);
rowCount++;
}else{
layoutParam.addRule(RelativeLayout.ALIGN_PARENT_TOP, lastButtonId);
}
lastButtonId = bt.getId();
//placeholder.addView(bt, layoutParam);
linearLayout.addView(bt, layoutParam);
我在循环结束时保存按钮 id,以便在下一轮访问最后一个按钮 id。我还尝试为每个新按钮创建一个新的相对布局,就像代码的注释部分显示的那样,但即使没有新布局,也没有任何反应,我仍然只是所有按钮重叠。