任何人都可以告訴我這個實現有什麼問題嗎?我想在這裏做的是有兩個重疊的視圖,當你點擊屏幕時交換位置。除非我錯誤地使用它,否則View.bringToFront()什麼也不做?Android:交換兩個重疊視圖
以下是我的應用程序中的所有代碼。請注意,我在'backView'中添加了填充以確保兩者實際上重疊。事實上,我可以在屏幕上看到兩者。雖然點擊頂視圖確實會觸發onClick方法,但對於對bringToFront的調用作出響應,沒有任何可見的變化。
public class MainActivity extends Activity implements OnClickListener {
private ImageView frontView;
private ImageView backView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
frontView = (ImageView) findViewById(com.example.R.id.FrontView);
backView = (ImageView) findViewById(com.example.R.id.BackView);
frontView.setOnClickListener(this);
backView.setOnClickListener(this);
backView.setPadding(10,0,0,0);
}
private boolean flag;
public void onClick(View v) {
if (!flag) {
backView.bringToFront();
}
else {
frontView.bringToFront();
}
flag = !flag;
}
}
和相應的佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/FrontView"
android:src="@drawable/front"
/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/BackView"
android:src="@drawable/back"
/>
</RelativeLayout>
也許它的佈局我使用?我不確定...我也嘗試過FrameLayout和LinearLayout。
我注意到,使用AbsoluteLayout似乎給我我想要的結果...但該類實際上標記爲已棄用。我會盡量避免問「爲什麼這個不合時宜?」只是問「有沒有合法的方法來做到這一點?」 – Cruinh 2010-11-22 01:17:28