Я нашел несколько руководств о том, как заставить 3D-анимацию переворачивать виды в ViewFlipper.Все они используют камеру и вращение для достижения эффекта.Я использовал это: http://code.google.com/p/android-3d-flip-view-transition/ - обертка для достижения результатов - и все работает просто отлично.То есть, что касается визуального переворачивания.
Что не работает, хотя кнопка после завершения переворота.Такое ощущение, что все события onClick либо не получены, либо просто игнорируются после завершения переворота.Вот мой очень простой пример.
XML:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/selector_flipper">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/playing_field"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Flip"
android:onClick="flipView" />
</LinearLayout>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tag_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"/>
</ViewFlipper>
Упражнение:
public class SelectorActivity extends Activity {
private ViewFlipper flipper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.selector);
flipper = (ViewFlipper)this.findViewById(R.id.selector_flipper);
}
/**
* @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && tagList.getVisibility() == View.VISIBLE)
flipView(null);
else
return super.onKeyDown(keyCode, event);
}
public void flipView(View v) {
AnimationFactory.flipTransition(flipper, FlipDirection.RIGHT_LEFT);
}
}
Когда действие будет создано, я могу нажать кнопку «Перевернуть» - ивид меняется так, как я хочу.Затем я могу нажать кнопку «назад» на телефонной трубке - и она откидывается, как я хочу.Однако теперь я больше не могу нажимать кнопку - все щелчки просто игнорируются.
Кто-нибудь может мне помочь разобраться в этой проблеме?Очень признателен!
PS Я пробовал другие обёртки и даже сам кодировал ту же анимацию - но результат всегда был одинаковым!Щелчки не работают после переворота!