首页 > 代码库 > 20161216

20161216

安卓fragment

作为 Activity 界面的一部分,Fragment 的存在必须依附于 Activity,并且与 Activity 一样,拥有自己的生命周期,同时处理用户的交互动作。同一个 Activity 可以有一个或多个 Fragment 作为界面内容,并且可以动态添加、删除 Fragment,灵活控制 UI 内容,也可以用来解决部分屏幕适配问题,另外,support v4 包中也提供了 Fragment,兼容 Android 3.0 之前的系统(当然,现在 3.0 之前的系统在市场上已经很少见了,可以不予考虑),使用兼容包需要注意两点:

1.Activity 必须继承自 FragmentActivity;

2.使用 getSupportFragmentManager() 方法获取 FragmentManager 对象;

 

使用的一些注意事项

如果你的项目支持3.0以下的版本,请导入如下的包:android.support.v4.*;在使用Fragment的Activity请继承FragmentActivity而不是Activity。如果您的系统是3.0或以上版本,同样需要导入类似的包,但是可以使用普通的Activity。

在3.0以上也是可以继承于FragmentActivity的,但是需要有以下的几点注意,如果我们是继承于FragmentActivity的话,我们使用的是android.v4.Fragment,我们在制作自己的Fragment的时候,我们要注意不要继承于andrid.app.Fragment,如果继承于app.Fragment,那么就会在FragmentManager.add的时候出现类型转换错误,这一点千万要注意。

Fragment其实非常类似于一个内嵌于Activity的Activity,只不这它叫Fragment而已,它有属于自己的生命周期方法,但注意它也多了几个需要去实现的方法,如View onCreateView方法,它是操作系统向Fragment请求UI的一个方法,我们需要实现并且返回我们需要让它展现的一些内容,在我们继承的Fragment中,我们可以加上一些网络操作等操作,同时也是一个为主UI减负的一个非常好的方法。

在我们的主Activity中添加Fragment,我们需要注意的是我们需要在我们的布局中添加一个Container,这样的话我们的Fragment才能有地方可放。

如下:
android:id="@+id/frag_container"
android:layout_width="200dip"
android:layout_height="200dip" />
我们需要在Activity的布局中保留一个Fragment让我们去放我们的Fragment,看上面的id为frag_container,那么我们在添加的时候就用
beginTransaction().add(R.id.frag_container,fragment2).commit();

 

下面是它的周期表:

 

技术分享

 

20161216