Android 多个Fragment切换动画
来源:互联网 发布:修容产品推荐 知乎 编辑:程序博客网 时间:2024/06/05 14:15
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>
0 0
- Android 多个Fragment切换动画
- Android Fragment切换动画
- Android Fragment切换动画效果
- Android-Fragment 切换属性动画
- Android -- Activity,Fragment切换动画。
- Android 多个Fragment切换时,避免重复创建Fragment。
- Android Fragment切换时的动画效果
- android 关于切换fragment之间下划线动画
- 多个Fragment切换效果
- Activity多个fragment切换
- 【Android基础】Fragment控制切换多个页面
- Android基础——Fragment控制切换多个页面
- Android基础之使用Fragment控制切换多个页面
- Android基础之使用Fragment控制切换多个页面
- Android之Fragment多个页面切换实现
- android 多个Fragment切换时的注意事项
- Android基础之使用Fragment控制切换多个页面
- Android基础之使用Fragment控制切换多个页面
- 【codeforces Gym
- 标准二维表问题,catalan数的应用
- PCA,SVD
- 纯CSS3实现不错的表单验证效果
- Linux新手生存笔记[1]——Linux目录结构及说明
- Android 多个Fragment切换动画
- 减少代码模块之间的纠葛——解耦
- Java Map的遍历
- 24点游戏
- 链表中倒数第k个结点
- 前缀、中缀、后缀表达式
- 剑指offer---二维数组中的查找
- ArcGIS API For Javascript之离线部署
- 读书笔记:《HTML5开发手册》Web表单