我已经看过几个用于通过程序(来自java)为android中的视图设置相对位置的示例。但在我的特殊情况下,我有2个按钮(不是视图)说" 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 :(得分: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);