[英]Animation when pressing “back” button on android fragment
當用戶在其Android設備上按“后退”時,我正在嘗試創建動畫。 我想回到上一個片段,並通過動畫從上到下關閉實際片段以關閉該片段。
這是我啟動片段時的代碼:
FragmentTransaction fragmentTransaction = getActivity().getFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_right, R.animator.up_from_bottom);
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
這是R.animator.up_from_bottom.xml的代碼:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
<translate
android:fromXDelta="0%" android:toXDelta="0%"
android:fromYDelta="100%" android:toYDelta="0%"
android:duration="400" />
</set>
這是一個例外:
03-19 22:20:38.498: E/InputEventSender(15279): Exception dispatching finished signal.
03-19 22:20:38.498: E/MessageQueue-JNI(15279): Exception in MessageQueue callback: handleReceiveCallback
03-19 22:20:38.498: E/MessageQueue-JNI(15279): java.lang.RuntimeException: Unknown animator name: translate
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:129)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:126)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:93)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:72)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.FragmentManagerImpl.loadAnimator(FragmentManager.java:743)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:958)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1167)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:717)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1496)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:495)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.Activity.onBackPressed(Activity.java:2215)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.Activity.onKeyUp(Activity.java:2193)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
03-19 22:20:38.498: E/MessageQueue-JNI(15279): at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
在使用setCustomAnimation
標准Fragment
的setCustomAnimation
時(與支持庫相對),您需要使用R.animator
而不是R.anim
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.