我有一个带两个按钮的简单演示。它们在屏幕的顶部和底部布置有RelativeLayout 当我点击其中一个时,我希望它们切换位置。 最好的方法是什么?
这是我的res / layout / main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton
android:id="@+id/android_button_1"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:src="@drawable/icon"
android:layout_alignParentTop="true" />
<ImageButton
android:id="@+id/android_button_2"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:src="@drawable/icon2"
android:layout_alignParentBottom="true" />
</RelativeLayout>
这是我的活动:
public class HelloButtons extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageButton button1 = (ImageButton) findViewById(R.id.android_button_1);
final ImageButton button2 = (ImageButton) findViewById(R.id.android_button_2);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
Toast.makeText(HelloButtons.this, "Beep Bop", Toast.LENGTH_SHORT).show();
}
});
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
Toast.makeText(HelloButtons.this, "Beep Bop", Toast.LENGTH_SHORT).show();
}
});
}
}
答案 0 :(得分:1)
我想说最好的方法是不切换实际的ImageButton
位置,而是切换ImageButton
图像并跟踪应用程序内部的状态,以便它可以对onClicks
正确。
答案 1 :(得分:1)
沿着这些方向使用某些东西
RelativeLayout.LayoutParams lp1 = (LayoutParams) b1.getLayoutParams();
RelativeLayout.LayoutParams lp2 = (LayoutParams) b2.getLayoutParams();
lp2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0);
lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
lp1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
b1.setLayoutParams(lp1);
b2.setLayoutParams(lp2);
你OnClickListeners
中的(与之相反的是另一回事)