Выравнивание представлений во время выполнения в RelativeLayout - PullRequest
3 голосов
/ 22 февраля 2011

Как добавить представление в относительной компоновке во время выполнения, чтобы оно выравнивалось в верхней части родительского элемента. Скажем, я добавляю EditText при нажатии на кнопку. Теперь этот EditText должен быть таким, чтобы EditText находился над кнопкой.

вот пример того, что я делаю.

    button = new Button(this);  //here I am just checking if the button can come above the EditText
    button.setText("I am a button");  
    params.addRule(RelativeLayout.BELOW, editText.getId());  
    params.addRule(RelativeLayout.ALIGN_PARENT_ABOVE);  
    relativeLayout.addView(button);  

Я вообще не могу провести выравнивание. Любая подсказка высоко ценится. Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 22 февраля 2011

Вам необходимо использовать перегрузку RelativeLayout.addView, которая принимает ваши LayoutParams в качестве второго параметра

    button = new Button(this);  //here I am just checking if the button can come above the EditText
    button.setText("I am a button");  
    params.addRule(RelativeLayout.BELOW, editText.getId());  
    params.addRule(RelativeLayout.ALIGN_PARENT_ABOVE);  
    relativeLayout.addView(button, params);

метод addView

1 голос
/ 22 февраля 2011

Не ходи такой комплекс

Вместо

Шаг 1: Добавьте линейный макет с вертикальной ориентацией, куда бы вы ни добавляли свою кнопку

Шаг 2. Сначала добавьте EditText и установите его видимость GONE

Шаг 3: добавьте кнопку

Шаг 4: При нажатии кнопки просто сделайте вашу кнопку ВИДИМОЙ

Это будет работать наверняка и легко реализуется для

Надеюсь, это поможет:)

...