Добавить кнопку внизу линейного макета программно - PullRequest
2 голосов
/ 24 сентября 2011

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

Ответы [ 2 ]

6 голосов
/ 24 сентября 2011

Попробуйте:

Button button = new Button(this);
youLinearLayout.addView(button, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM));

edit извините, приведенный выше код не работает.

Вы не можете сделать это, используя один LinearLayout, если ориентация == вертикальная.

Вам потребуется создать другой макет (RelativeLayout) и добавить к нему TextView.

RelativeLayout relative = new RelativeLayout(this); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

relativeLayout.addView(textView, params);

linearLayout.addView(relativeLayout, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
4 голосов
/ 24 сентября 2011

Если остальная часть экрана не пуста, вы можете присвоить android:layout_weight=0.0 кнопке и 1,0 виджету вверху.

Таким образом, виджет с весом 1,0 будет расширяться, чтобы заполнить пустые области, а кнопка с 0,0 займет только пространство по умолчанию, и, поскольку последний элемент добавляется к вертикальному LinearLayout, он будет прикреплен к нижней части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...