Fragment切换注意事项

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wgj99991111/article/details/52336030

最近在使用fragment,现将其切换时的一些小问题总结如下:
首先是代码:

FragmentManager fm1 = getSupportFragmentManager(); 
        FragmentTransaction transaction = fm1.beginTransaction();  
		mArticleDetailFragment = new ArticleDetailFragment();
		mArticleDetailFragment.setUrl(event.getsUrl());
		 transaction.setCustomAnimations(
					R.animator.push_left_in,
					R.animator.push_left_out,
					R.animator.push_right_in,
					R.animator.push_right_out);
		 //切换动画是由进入的fragment和退出的fragment共同实现的,这里的四个参数分别表示
		 //第一个参数:进入切换时将要进入的fragment的进入动画
		 //第二个参数:进入切换时将要退出的fragment的退出动画
		 //第三个参数:退出切换时将要进入的fragment的进入动画
		 //第四个参数:退出切换时将要退出的fragment的退出动画
		transaction.add(R.id.id_content,mArticleDetailFragment);
		transaction.remove(mArticlesFragment);
		transaction.addToBackStack(null);
		//在这里将原来的fragment放在后方的栈里面,这样但点击退出时就能回退到之前的fragment页面。
		transaction.commit();

注意事项:
1)可以使用setCustomAnimations设置切换动画,注意切换动画四个参数的含义(在代码注释中有说明)。
2)设置切换动画的代码应该放在fragment的add、remove和replace操作之前,否则不起作用。
3)在切换时不直接使用replace,而使用add,之后将替换下来的fragment放在栈里,这样在新的fragment页面用户回退时,就会退到之前的fragment页面。感觉实际需要可以这样使用。

猜你喜欢

转载自blog.csdn.net/wgj99991111/article/details/52336030