gpt4 book ai didi

android - 如何通过Android中的代码动态对齐Relativelayout中的 View 元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:37 24 4
gpt4 key购买 nike

我想通过代码动态地在相对布局中显示 3 个复选框,一个在一个下面。但是我只能在一个下面显示两个复选框。我在下面给出我的代码....我无法找出我哪里出错了。

我的代码-

            RelativeLayout layout = new RelativeLayout(this);

CheckBox cb1 = new CheckBox(this);
cb1.setId(1);
cb1.setText("A");

CheckBox cb2 = new CheckBox(this);
cb2.setId(2);
cb2.setText("B");

CheckBox cb3 = new CheckBox(this);
cb3.setId(3);
cb3.setText("C");

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(lp);

layout.addView(cb1);

lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);

lp.addRule(RelativeLayout.BELOW,cb2.getId());
cb3.setLayoutParams(lp);
layout.addView(cb3);

提前致谢。

罗汉沃

最佳答案

layout.addView(cb1);     

lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);

lp.addRule(RelativeLayout.BELOW,cb2.getId());
cb3.setLayoutParams(lp);
layout.addView(cb3);

谢谢大佬,这对我帮助很大

我猜你在使用“lp”作为 cb2 和 cb3 的布局参数这一点上是错误的(你不能再次将相同的规则“RelativeLayout.BELOW”添加到相同的布局参数对象“lp”并且再次)。对 cb2 使用 lp,对 cb3 使用 lp2并像这样创建

        RelativeLayout layout = new RelativeLayout(this);

CheckBox cb1 = new CheckBox(this);
cb1.setId(1);
cb1.setText("A");

CheckBox cb2 = new CheckBox(this);
cb2.setId(2);
cb2.setText("B");

CheckBox cb3 = new CheckBox(this);
cb3.setId(3);
cb3.setText("C");

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(lp);

layout.addView(cb1);

lp.addRule(RelativeLayout.BELOW,cb1.getId());
cb2.setLayoutParams(lp);
layout.addView(cb2);

RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);//important

lp2.addRule(RelativeLayout.BELOW,cb2.getId());//important
cb3.setLayoutParams(lp2);//important
layout.addView(cb3);

我认为这会奏效。

关于android - 如何通过Android中的代码动态对齐Relativelayout中的 View 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280844/

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