Проблема добавления текстовых полей динамически в относительном макете - PullRequest
2 голосов
/ 18 октября 2010

У меня проблемы с динамическим добавлением текстового поля в моем представлении.В частности, текстовое поле-сумматор работает, но кнопка, которую я пытаюсь переместить ниже, не работает.Исходный вид - это первое изображение в приведенной ниже гиперссылке.

После нажатия кнопки +/- следует добавить текстовое поле между вторым текстовым полем и кнопкой выбора, а затем переместить +/-кнопка вниз, так что это рядом с новым полем.Вместо этого происходит второе изображение:

http://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 и пытался создать новые параметры макета.Я также попытался заменить кнопку выбора на текстовое поле, но возникла та же проблема.Пожалуйста, помогите.

1 Ответ

2 голосов
/ 09 ноября 2010

Для тех, кто заботится, я являюсь частью этой команды разработчиков, и мы решили нашу проблему.

Вот концепция проблемы.

LayoutParams p = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

В нашем макете мы используем относительный макет, поэтому строка должна быть:

 RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

Назначение несовместимых параметров макета вызывает проблемы.

...