Fragment初级使用要点

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

Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视。针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。你可以把Fragment当成Activity的一个界面的一个组成部分,甚至Activity的界面可以完全有不同的Fragment组成,更帅气的是Fragment拥有自己的生命周期和接收、处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了。更为重要的是,你可以动态的添加、替换和移除某个Fragment。
最近学习Fragment的使用方法,现将其最基本的使用流程记录如下,防止以后忘记。
第一步:为Fragment创建layout文件,在该文件中定义Fragment的布局。
第二步:创建一个继承自Fragment的类,复写该类的onCreateView方法,在该方法中将布局文件与该类相关联。

@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.fragment_article_detail, container, false);
		return rootView;
	}

第三步:在activity中控制Fragment。
首先加载默认Fragment:

private void setDefaultFragment()  
    {  
        fm = getSupportFragmentManager(); 
       fragmentTransaction = fm.beginTransaction();  
        mArticlesFragment = new ArticlesFragment();
        fragmentTransaction.add(R.id.id_content,mArticlesFragment);  
        fragmentTransaction.commit();  
    }  

在需要的时候替换Fragment:

	public void onEvent(ArticleDetailEvent event){
		FragmentManager fm1 = getSupportFragmentManager(); 
        FragmentTransaction transaction = fm1.beginTransaction();  
		mArticleDetailFragment = new ArticleDetailFragment();
transaction.replace(R.id.id_content,mArticleDetailFragment).commit();		
	}

几点要注意的地方:
1)activity必须继承自FragmentActivity。
2)FragmentManager 、FragmentTransaction 要import的是V4的包,别搞错了,且获取FragmentManager要使用getSupportFragmentManager方法,别用错了。还有在每次替换Fragment时,FragmentManager 、FragmentTransaction都要重新获取,在初始化时获取,以后都使用的方法不可行。

猜你喜欢

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