Android中Fragment之间切换我们是可以对其进行添加动画,而且进行设置也是非常简单,但是在设置动画的过程中有一些需要注意的地方后面会慢慢说出来

  • 这里我直接贴出Fragment切换的方法上面有注释
public static void showFragment(int index, int state) {        // 想要显示fragment,先隐藏所有fragment,防止重叠        mineChangestate = state;        marketChangestate = state;        FragmentTransaction ft = manager.beginTransaction();    //fragment的切换动画        if(index ==0 && last_index ==0){            ft.setCustomAnimations(R.anim.fragmen_left, 0);        }        if(index != last_index) {            if (index - last_index > 0) {                ft.setCustomAnimations(R.anim.fragmen_left, 0);            } else if (index - last_index < 0) {                ft.setCustomAnimations(R.anim.fragment_right, 0);            }        }        hideFragments(ft);        switch (index) {            case 1:                //判断是否点击推荐按钮                // 如果fragment1已经存在则将其显示出                last_index =1;                if (fragment1 != null) {                    if (marketChangestate == 1) {                        ft.remove(fragment1);                        fragment1 = new RecommendFragment();                        ft.add(R.id.main_framelayout, fragment1);                        marketChangestate = 0;                    }                    ft.show(fragment1);                    // 否则是切换则添加fragment1,注意添加后是会显示出来的,replace方法也是先remove后add                } else {                    fragment1 = new RecommendFragment();                    ft.add(R.id.main_framelayout, fragment1);                }                break;            case 2:                //是否点击理财按钮                last_index =2;                if (fragment2 != null) {                    if (marketChangestate == 1) {                        ft.remove(fragment2);                        fragment2 = new MarketFragment();                        ft.add(R.id.main_framelayout, fragment2);                        marketChangestate = 0;                    }                    ft.show(fragment2);                } else {                    fragment2 = new MarketFragment();                    ft.add(R.id.main_framelayout, fragment2);                }                break;            case 3:                //是否点击我的按钮                last_index =3;                if (fragment3 != null) {                    if (mineChangestate == 1) {                        ft.remove(fragment3);                        fragment3 = new MineFragment();                        ft.add(R.id.main_framelayout, fragment3);                        mineChangestate = 0;                    }                    ft.show(fragment3);                } else {                    fragment3 = new MineFragment();                    ft.add(R.id.main_framelayout, fragment3);                }                break;        }        ft.commitAllowingStateLoss();    }

上面那么多代码,其实设置Fragment切换动画的只有一句代码,下面就是设置Fragment的动画

ft.setCustomAnimations(R.anim.fragmen_left, 0);

但是需要注意的是在设置动画的时候一定要在Fragment show之前进行设置否则该动画就不会起作用

下面在贴出动画代码,我设置的动画是平移动画

代码路径res/anim/fragmen_left.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate android:fromXDelta="-100%p"        android:toXDelta="0"        android:duration="400"/>set>

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
  2. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  3. 属性大全
  4. Android中通过typeface设置字体
  5. textView属性
  6. Android(安卓)TextView属性详解
  7. Android开关机动画/铃音是如何播放的?
  8. Android(安卓)TextView属性详解
  9. android动画

随机推荐

  1. android shape 常用到属性的设置
  2. Android(安卓)双开沙箱 VirtualApp 源码
  3. Android通过App启动另一个APP
  4. Android(安卓)获取设备各种信息以及其它
  5. android 自定义对话框 背景透明
  6. Android之一种很有趣的界面跳动提示动画
  7. Android(安卓)wifi提示已连接但是无法访
  8. Android(安卓)Asynchronous Http Client
  9. 在Android中,如何通过onTouchEvent实现Dou
  10. android 复制、粘贴字符串 (判断API 11 )