在相对布局中动态添加文本框时出现问题

2024-04-04

我在动态添加文本框到我的视图时遇到问题。更具体地说,文本框加法器可以工作,但我试图移动到它下面的按钮却不能。原始视图是以下超链接中的第一张图片。

按下 +/- 按钮后,应在第二个文本框和决定按钮之间添加一个文本框,然后向下移动 +/- 按钮,使其位于新框旁边。相反,第二幅图发生了:

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(使用前将#替换为@)

在相对布局中动态添加文本框时出现问题 的相关文章

随机推荐