我在动态添加文本框到我的视图时遇到问题。更具体地说,文本框加法器可以工作,但我试图移动到它下面的按钮却不能。原始视图是以下超链接中的第一张图片。
按下 +/- 按钮后,应在第二个文本框和决定按钮之间添加一个文本框,然后向下移动 +/- 按钮,使其位于新框旁边。相反,第二幅图发生了:
https://i.stack.imgur.com/mzBL3.png https://i.stack.imgur.com/mzBL3.png
我的代码如下所示:
EditText textBox2 = (EditText) findViewById(R.id.box2);
RelativeLayout rel = (RelativeLayout) findViewById(R.id.mainlayout);
Context context = getApplicationContext();
EditText newText = new EditText(context);
newText.setId(numBoxes);
numBoxes++;
LayoutParams p = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
p.addRule(RelativeLayout.BELOW, bottomView.getId());
p.addRule(RelativeLayout.ALIGN_RIGHT, bottomView.getId());
newText.setWidth(220);
newText.setHeight(LayoutParams.WRAP_CONTENT);
newText.setLayoutParams(p);
rel.addView(newText);
bottomView = newText;
((TextView) bottomView).setText((CharSequence)bottomView.getTag());
LayoutParams b = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
Button goButton = (Button)findViewById(R.id.decide);
b = (LayoutParams) goButton.getLayoutParams();
b.addRule(RelativeLayout.BELOW, bottomView.getId());
goButton.setLayoutParams(b);
Button addButton = (Button)findViewById(R.id.addsub);
b = (LayoutParams) addButton.getLayoutParams();
b.addRule(RelativeLayout.RIGHT_OF, textBox2.getId());
b.addRule(RelativeLayout.ALIGN_TOP, bottomView.getId());
addButton.setLayoutParams(b);
Numboxes 只是一个计数器,因此我可以跟踪这些框并相应地命名它们,而 BottomView 只是最底部的文本框。
我搜索了整个 Android 开发页面,并尝试创建新的布局参数。我还尝试用文本框替换决定按钮,但出现了同样的问题。请帮忙。
对于那些关心的人,我是这个开发团队的一员,我们解决了问题。
这是问题的概念。
LayoutParams p = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
在我们的布局中,我们使用相对布局,因此该行应该是:
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
分配不兼容的布局参数会导致问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)