对 Android 开发人员来说是全新的,我正在尝试用一小段代码找出问题所在。
我有一个相对布局(我相信它最适合我的需要)。我在 activity_main.xml 文件中指定的一行上有两个按钮。当我按下其中一个按钮时,我希望 EditText 字段和按钮重复出现在同一行上,在最后一组项目下方。有点像这样:
按钮 按钮
| _ _| 按钮
我的函数在第一次点击时添加了我期望的 EditText,但是我最终得到了一排 3 个按钮,如下所示:
按钮 按钮 按钮
| _ _|
代码在下面,我是否缺少有关相对布局的内容?我是否以非常糟糕的方式访问元素?
//Get main layout as defined in activity_main.xml
final RelativeLayout rl = (RelativeLayout)this.findViewById(R.id.rootLayout);
//Setup rules
final RelativeLayout.LayoutParams below = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
final RelativeLayout.LayoutParams right = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
newTimer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
below.addRule(RelativeLayout.BELOW,rl.getChildAt(rl.getChildCount()-1).getId() );
EditText timerName = new EditText(MainActivity.this);
Button btnAddNewTimer = new Button(MainActivity.this);
timerName.setText("New Timer");
timerName.setVisibility(View.VISIBLE);
timerName.setLayoutParams(below);
rl.addView(timerName);
right.addRule(RelativeLayout.RIGHT_OF,rl.getChildAt(rl.getChildCount()-1).getId());
btnAddNewTimer.setText("Add");
btnAddNewTimer.setVisibility(View.VISIBLE);
btnAddNewTimer.setLayoutParams(right);
rl.addView(btnAddNewTimer);
}
});