Может кто-нибудь сказать мне, что не так с этой реализацией? Все, что я хочу здесь сделать, - это два перекрывающихся вида, которые меняются местами при нажатии на экран. Если только я не использую это неправильно, View.bringToFront () ничего не делает?
Ниже приведен весь код моего приложения. Обратите внимание, что я добавил отступ в 'backView', чтобы убедиться, что они на самом деле перекрываются. Действительно, я мог видеть оба на экране. Несмотря на то, что касание вида сверху действительно вызывает метод onClick, ничто заметно не меняется в ответ на вызовы методаtintFront.
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.