2013-03-14 3 views
0

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

LinearLayout layout = new LinearLayout(this);    
layout.setOrientation(LinearLayout.VERTICAL); 

разместить свои элементы один ниже другого. Но для моего заголовка я использую новый макет

LinearLayout layout_header = new LinearLayout(this);    
layout.setOrientation(LinearLayout.HORIZONTAL); 

и добавление его в виде макета LinearLayout. Но в LinearLayout layout_header у меня есть две кнопки, и я хочу, чтобы одна из них находилась в общем левом, а другая - в полном праве. Но оба идут бок о бок, я пытался включить прописку/поля, но не работал.

Я также создал параметры макета для обеих кнопок и попытался добавить поля/гравитацию/дополнение отдельно, но все равно не работал.

Пожалуйста, помогите, как перейти к размещению этих кнопок в двух отдельных углах.

ответ

1

Если вам нужна одна вещь в крайнем левом углу и одна в крайнем правом углу, ее легче использовать относительную компоновку. Просто сделайте первые android:layout_alignParentRight="true", а другой android:layout_alignParentLeft="true"

+0

спасибо, но можем ли мы установить это программно ?? Я создаю представление по коду, относительная компоновка подходит для меня! – bharath

+1

Да, вам придется поместить его в RelativeLayout и использовать класс RelativeLayout.LayoutParams, чтобы указать ограничения выше. Просто добавьте правильное правило к параметрам для каждого. –

+0

привет, спасибо за ответ, это сработало !! – bharath

0

Я бы порекомендовал ответ Гейба, так как именно это и есть RelativeLayout. Тем не менее, если вы хотите сохранить его LinearLayout по какой-либо причине, вы можете поместить невидимый Viewмежду ваших двух Button с:

<Button 
    ... /> 
<View 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" /> 
<Button 
    ... /> 

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