【发布时间】:2015-12-26 04:51:42
【问题描述】:
我对这段代码有疑问。我需要动态地将按钮添加到我的布局中。此代码工作正常,但有一个例外。第二个按钮位于第一个按钮之上。这一定和LayoutParams有关,但我不确定。
private void buttonmaker (Button button)
{
RelativeLayout.LayoutParams rlayout = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
rlayout.addRule(RelativeLayout.CENTER_VERTICAL);
rlayout.addRule(RelativeLayout.ALIGN_LEFT);
rlayout.width = 100;
button.setId(Atom.count);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
atoms[id].getname();
TextView textview = (TextView)findViewById(R.id.textView2);
textview.setText(textview.getText()+String.valueOf(atoms[id].getname()));
}
});
if (Atom.count > 1) rlayout.addRule(RelativeLayout.RIGHT_OF,Atom.count-1); else rlayout.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
button.setLayoutParams(rlayout);
RelativeLayout v = (RelativeLayout) findViewById(R.id.rlayout);
v.addView(button);
}
【问题讨论】:
-
抱歉代码发布的方式。
-
“对不起,代码发布的方式”标签下方有一个编辑按钮;)
-
我认为您应该使用实际 ID,而不是
Atom.count-1 -
不幸的是,这并没有帮助,但我同意它使代码更清晰。
-
你真的需要使用
RelativeLayout吗?LinearLayout不会有这个问题
标签: java android android-layout button layout