gpt4 book ai didi

android - 试图理解相对布局

转载 作者:行者123 更新时间:2023-11-29 00:27:56 24 4
gpt4 key购买 nike

Android 开发的新手,我试图用一小段代码找出问题所在。

我有一个相对布局(我认为它最适合我的需要)。我在 activity_main.xml 文件中指定的一行上有两个按钮。当我按下其中一个按钮时,我希望 EditText 字段和按钮重复出现在同一行上,在最后一组项目的下方。有点像这样:

BUTTON BUTTON

|__| BUTTON

我的函数在第一次点击时将 EditText 添加到我期望的位置,但是我最终得到了一排 3 个按钮,如下所示:

BUTTON BUTTON BUTTON

|__|

代码在下面,我是否遗漏了一些关于相对布局的信息?我访问元素的方式是否非常拙劣?

//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);

}
});

最佳答案

我个人不相信 getChildCount()-1).getId() 可以获取最后添加的 View 。

另外,您需要指定一个布局参数来确定您希望新项目垂直放置的位置。因此,您需要在右侧添加一条规则,使其顶部与按钮对齐。

我建议您获取添加的 View 的 ID

            timerName.setText("New Timer");
timerName.setVisibility(View.VISIBLE);
timerName.setLayoutParams(below);
timerName.setId(39);//or some other unique id in this range
rl.addView(timerName);


right.addRule(RelativeLayout.RIGHT_OF, timerName.getId());
right.addRUle(RelativeLayout.ALIGN_TOP,timerName.getId());

btnAddNewTimer.setText("Add");
btnAddNewTimer.setVisibility(View.VISIBLE);
btnAddNewTimer.setLayoutParams(right);

关于android - 试图理解相对布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17984384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com