花了很多時間尋找這個之後,我需要在這裏請求幫助。片段和幻燈片上的動畫
我有一系列代表「頁面」的片段。 我想在轉到他請求的下一頁時給用戶一個很好的動畫效果。
我希望新的片段可以滑過上一個片段,隱藏它就好像它是一個實體頁面一樣。 目前我可以在新片段中滑動,但在轉換過程中我們仍然可以看到底層片段。
這裏是我的過渡定義 「幻燈片」:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:duration="500"
android:propertyName="x"
android:valueFrom="-1280"
android:valueTo="0"
android:valueType="floatType" />
</set>
,這裏是我的淡出過渡
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueFrom="1.0"
android:valueTo="0"
android:valueType="floatType" />
</set>
我套用:
Fragment f = (Fragment)FragClass.newInstance();
FragmentTransactionft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.animator.fragment_slide_in, R.animator.fragment_fade_out);
ft.replace(R.id.fl_frame, f);
ft.commit();
我所看到的我想用ViewPager來演示這種效果 - 但我使用的是片段。 可以通過片段動畫實現這種轉換(只需從最後顯示的左側位移入)? 或者可能是片段動畫和屬性動畫的混合? - 嘗試過,但它非常混亂。
我在平板電腦上爲Android 4.0及以上版本構建。
我不想爲此使用ViewPager,試圖避免支持庫。
你如何將AnimatorListener添加到FragmentTransaction中?我試圖解決這個相同的問題,我不能完全實現你的解決方案。 –
@ JessieA.Morris:解決方案並不那麼直接。動畫偵聽器未連接到FragmentTransaction。您需要在每個片段中重寫以下函數:'public Animator onCreateAnimator(int transit,boolean enter,int nextAnim)'。檢查'nextAnim'是否不是0,然後:'Animator anim = AnimatorInflater.loadAnimator(getActivity(),nextAnim); anim.addListener([你的動畫師監聽器]);'。希望這可以幫助。 – Simon
可以請你分享一些解決方案的代碼,我希望新的片段可以滑過舊的片段。 – Dory