我在以下布局中有2个按钮。调整按钮,使左按钮始终保持在右按钮的左侧
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/right_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Right Button"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/left_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Left Button"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/right_btn"/>
</RelativeLayout>
但是,在我的活动中,当我改变右按钮的位置时,左按钮位置保持不变。
Button rightBtn = (Button) findViewById(R.id.right_btn);
rightBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
view.setTranslationX(100);
}
});
我已将setTranslationX(100)
和setX(500)
同时用于右键,但左键位置保持不变。我不确定但是知道setTranslationX
只改变按钮的外观,但是对象保持在同一位置。
是否有任何属性可以设置右按钮的位置,以便左按钮位置也会改变,以便它始终位于右按钮的左侧。
答案 0 :(得分:1)
when I change the position of right button, the left button position remains same.
这是因为您明确地移动了右键x轴而不是整个布局,因此右键仅转换到您指定的位置而不是左键。
解决方案:
当右按钮移动相同的translationx像素时,您也可以翻译左按钮。
答案 1 :(得分:-1)
我认为您似乎遇到的一个问题是您正在使用
view.setTranslationX(100);
尝试重新考虑您的策略。