Android——Fragment中通过给每个Fragment设置开场动画进入
来源:互联网 发布:网络流行用语2017 编辑:程序博客网 时间:2024/05/21 00:46
在Fragment中为每一个Fragment制作一个splash开场动画。
先来做一个通用的splashFragment:
public class SplashFragment extends BaseFragment implements AnimationListener { private static final String BUNDLE_SPLASH = "splash"; private static final String BUNDLE_FRAGMENT = "fragment"; private AnimationSet set; private LinearLayout layout; private FragmentManager fm; private Fragment[] fragments=new Fragment[4]; private int fragment_id; @Override public void initViews() { // TODO Auto-generated method stub layout=(LinearLayout) find(R.id.splashfragment_layout); } @Override public void initListeners() { // TODO Auto-generated method stub } public SplashFragment newInstance(int layout,int whichfragment) { SplashFragment fragment = new SplashFragment(); Bundle bundle = new Bundle(); bundle.putInt(BUNDLE_SPLASH, layout); bundle.putInt(BUNDLE_FRAGMENT, whichfragment); fragment.setArguments(bundle); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); fm=getFragmentManager(); fragments[0]=new MovieFragment(); fragments[1]=new RobotFragment(); fragments[2]=new WuZiQiFragment(); fragments[3]=new LOLFragment(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub Bundle bundle = getArguments(); fragment_id=bundle.getInt(BUNDLE_FRAGMENT); return inflater.inflate(bundle.getInt(BUNDLE_SPLASH), null); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); init(); set=(AnimationSet) AnimationUtils.loadAnimation(getActivity(),R.anim.splash_fragment); layout.setAnimation(set); set.setAnimationListener(this); } @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub fm.beginTransaction().replace(R.id.main_fragment, fragments[fragment_id]).commit(); } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub }}
在主Activity中只需要先调用此Fragment:
changeFragment(new SplashFragment().newInstance(R.layout.fragment_splash_movie, 0));private void changeFragment(Fragment targetFragment) { getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, targetFragment).commit(); }
这样就达到一个Fragment给多个Fragment设置开场动画。
阅读全文
0 0
- Android——Fragment中通过给每个Fragment设置开场动画进入
- 给Fragment设置style
- 给Fragment设置Style
- 【Unity】Unity中开场动画设置
- Android Fragment切换动画
- Android共享元素转场动画Part2——Fragment to Fragment
- Android实用方法— ViewPager + Fragment取消预加载以及Activity传值给Fragment
- Android Fragment——创建Fragment
- Android Fragment——管理Fragment
- Android Fragment——处理Fragment生命周期
- Fragment系列—Activity中添加fragment
- 为Fragment设置转场动画
- Android——Fragment
- Android ——fragment
- Android—Fragment生命周期
- Android—viewpage+Fragment
- Android基础—Fragment
- Andriod Fragment——给Activity添加一个Fragment
- git常用命令
- MinGW安装
- 在CentOS安装CMake
- 项目中tomcat 下配置HTTPS
- 四大标签
- Android——Fragment中通过给每个Fragment设置开场动画进入
- Hibernate开启收集缓存统计信息
- UFLDL stackedae_exercise编程答案
- SpringBoot系列(3)---无配置文件SpringMVC
- 五、JAVA语法基础(3)
- 【技能库】--JS时间处理(251)
- Split()用法 isNaN MVC ...基础知识
- springmvc环境搭建中url-pattern /和/*的区别
- Number Sequence F(n)的计算