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>
  • 相关阅读:
    POI数据类型转换
    RSA加密解密——绕过OpenSSL
    STS热部署,springboot项目中修改代码不用重新启动服务
    List || Lists
    java解析复杂json数据
    Sublime Text 3 全程详细图文原创教程
    SpringBoot外调的几种方式 || http、https配置
    JPA对原生SQL的支持
    基于UDP协议的网络编程
    基于TCP协议的网络编程
  • 原文地址:https://www.cnblogs.com/wsfjlagr/p/4234110.html
Copyright © 2011-2022 走看看