簡體   English   中英

在Android片段上按“返回”按鈕時的動畫

[英]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標准FragmentsetCustomAnimation時(與支持庫相對),您需要使用R.animator而不是R.anim

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM