zoukankan      html  css  js  c++  java
  • Fragment的切换动画实现

    private void addFragment() {
        if (null == mFragmentManager) {
            mFragmentManager = getFragmentManager();
        }
     
        mTextFragmentOne = new MyFragmentOne();
        FragmentTransaction fragmentTransaction = mFragmentManager
                .beginTransaction();
     
        // 标准动画
        
    // fragmentTransaction
        
    // .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        
    // fragmentTransaction
        
    // .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
     
        
    // fragmentTransaction
        
    // .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
     
        
    // 自定义动画
     
        
    // API LEVEL 11
        
    // fragmentTransaction.setCustomAnimations(
        
    // R.animator.fragment_slide_left_enter,
        
    // R.animator.fragment_slide_right_exit);
     
        
    // API LEVEL 13
        fragmentTransaction.setCustomAnimations(
         R.animator.fragment_left_enter,
         R.animator.fragment_left_exit,
         R.animator.fragment_pop_left_enter,
         R.animator.fragment_pop_left_exit);
     
        fragmentTransaction.add(R.id.container, mTextFragmentOne);
     
        // 加入到BackStack中
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
     
    }
     
    private void removeFragment() {
        if (null == mFragmentManager) {
            mFragmentManager = getFragmentManager();
        }
        mFragmentManager.popBackStack();
    }
    View Code

    animator的文件定义

    fragment_left_enter.xml

    View Code 

       fragment_left_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="0dp" android:valueTo="100dp"
            android:valueType="floatType"
            android:propertyName="translationX"
            android:duration="@android:integer/config_mediumAnimTime" />
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="1.0" android:valueTo="0.0"
            android:valueType="floatType"
            android:propertyName="alpha"
            android:duration="@android:integer/config_mediumAnimTime" />
    </set>
    fragment_pop_left_enter.xml
    <?xml version="1.0" encoding="utf-8"?>
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="100dp" android:valueTo="0dp"
            android:valueType="floatType"
            android:propertyName="translationX"
            android:duration="@android:integer/config_mediumAnimTime" />
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="0.0" android:valueTo="1.0"
            android:valueType="floatType"
            android:propertyName="alpha"
            android:duration="@android:integer/config_mediumAnimTime" />
    </set>

     fragment_pop_left_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="0dp" android:valueTo="-100dp"
            android:valueType="floatType"
            android:propertyName="translationX"
            android:duration="@android:integer/config_mediumAnimTime" />
        <objectAnimator
            android:interpolator="@android:interpolator/decelerate_quint"
            android:valueFrom="1.0" android:valueTo="0.0"
            android:valueType="floatType"
            android:propertyName="alpha"
            android:duration="@android:integer/config_mediumAnimTime" />
    </set>
  • 相关阅读:
    BZOJ4644 经典傻逼题 (线段树分治+可撤销线性基+Xor)
    CF678E Another Sith Tournament(思维+dp)
    HDU 6511
    HDU6513 Reverse It(容斥+Cnk)
    一篇最浅显易懂的Splay讲解(试问谁能比我的更易懂
    [CTSC2016]时空旅行 (线段树分治+凸壳
    关于dsu on tree 和一些例题 CF 741 D
    关于区间开根号+区间询问
    [FJOI2015]火星商店问题 --线段树分治+可持久化trie
    线段树 关于pushup的技巧
  • 原文地址:https://www.cnblogs.com/wsfjlagr/p/4234110.html
Copyright © 2011-2022 走看看