2015-07-28 10 views
0

Я видел пару примеров для установки относительной позиции через программу (из java) для просмотров в Android. Но в моем конкретном случае у меня есть две кнопки (которые не являются представлениями) говорят «button_tag» и «button_rate», которые создаются с помощью xml, и по умолчанию расположены «button_tag» выше «button_rate». Если в любой момент времени есть механизм, с помощью которого я могу сделать «button_tag» ниже «button_rate» динамически.Динамическое изменение положения кнопки относительно другой кнопки

<Button 
    android:id="@+id/button_tag" 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:layout_marginTop="1dp" 
    android:background="@drawable/img_whitebackground" 
    android:gravity="left|center_vertical" 
    android:paddingLeft="5dip" 
    android:text="@string/string_tag" 
    android:onClick="click_addscreen" > 
</Button> 

<Button 
    android:id="@+id/button_rate" 
    android:layout_marginTop="1dp" 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:text="@string/string_rate" 
    android:gravity="left|center_vertical" 
    android:paddingLeft="5dip" 
    android:onClick="click_addscreen" 
    android:background="@drawable/img_whitebackground" > 
</Button> 

XML-часть из двух кнопок, как показано

+0

Они находятся в линейной компоновке. Верный ? –

ответ

1

Вы можете использовать объект LayoutParams и добавить правила для этого объекта в соответствии с вашими требованиями. и затем setlayoutparam к вашей кнопке.

Например:

  RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80,80); // size of button in dp 
      params.addRule(RelativeLayout.LEFT_OF, R.id.btnAdd); 
      params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
      params.setMargins(0, 0, 20, 60); 
      btnMyLocation.setLayoutParams(params); 
1

Вы можете добавить правила, чтобы установить положение динамически.

RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
        ViewGroup.LayoutParams.MATCH_PARENT); 

p.addRule(RelativeLayout.BELOW, R.id.button_rate); 
buttonTag.setLayoutParams(p); 
Смежные вопросы