【开源】FragmentTransactionExtended

FragmentTransactionExtended

      •  https://github.com/DesarrolloAntonio/FragmentTransactionExtended

        介绍:

        一个扩展了Fragment动画效果的库,FragmentTransactionExtended是 FragmentTransaction 的扩展, FragmentTransaction 只支持少数的动画效果(TRANSIT_FRAGMENT_CLOSE, TRANSIT_FRAGMENT_FADE, TRANSIT_FRAGMENT_OPEN...) FragmentTransactionExtended在此基础上增加了不少动画效果。

        运行效果:

  • 使用说明:

    下面是FragmentTransactionExtended增加的动画效果

    • SCALEX

    • SCALEY

    • SCALEXY

    • FADE

    • FLIP_HORIZONTAL

    • FLIP_VERTICAL

    • SLIDE_VERTICAL

    • SLIDE_HORIZONTAL

    • SLIDE_HORIZONTAL_PUSH_TOP

    • SLIDE_VERTICAL_PUSH_LEFT

    • GLIDE

    • SLIDING

    • STACK

    • CUBE

    • ROTATE_DOWN

    • ROTATE_UP

    • ACCORDION

    • TABLE_HORIZONTAL

    • TABLE_VERTICAL

    • ZOOM_FROM_LEFT_CORNER

    • ZOOM_FROM_RIGHT_CORNER

    • ZOOM_SLIDE_HORIZONTAL

    • ZOOM_SLIDE_VERTICAL

       

     

    因为FragmentTransaction.setCustomAnimations是使用属性动画实现的,而在FragmentTransactionExtended中,这些属性是自定义viewSlidingRelativeLayout中的属性,因此fragment container需要是SlidingRelativeLayout的子类:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <com.desarrollodroide.libraryfragmenttransactionextended.SlidingRelativeLayout        xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/back1" >
        <ListView
                android:id="@android:id/list"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
    </com.desarrollodroide.libraryfragmenttransactionextended.SlidingRelativeLayout>

     

    构造函数:

    1
    FragmentTransactionExtended fragmentTransactionExtended = new FragmentTransactionExtended(context, fragmentTransaction, firstFragment, secondFragment, containerID);

    添加动画:

    1
    fragmentTransactionExtended.addTransition(FragmentTransactionExtended.*);

    使用的例子:

    1
    2
    3
    FragmentManager fm = getFragmentManager();FragmentTransaction fragmentTransaction = fm.beginTransaction();FragmentTransactionExtended fragmentTransactionExtended = new FragmentTransactionExtended(this, fragmentTransaction, firstFragment, secondFragment, R.id.fragment_place);
    fragmentTransactionExtended.addTransition(FragmentTransactionExtended.GLIDE);
    fragmentTransactionExtended.commit();

 

posted on 2015-04-07 11:42  wasdchenhao  阅读(202)  评论(0)    收藏  举报

导航