简介
-Fragment(碎片)是一种可以嵌入在Activity中的UI片段,它可以用来描述Activity中的一部分布局。
生命周期
–Fragment不能独立存在,必须嵌入到Activity中使用,所以Fragment生命周期直接受所在的Activity影响。
–当在Activity中创建Fragment时,Fragment处于启动状态,当Activity被暂停时,其中的所有Fragment也被暂停,当Activity被销毁时,所有在该Activity中的Fragment也被销毁。当一个Activity处于运行状态时,可以单独地对每一个Fragment进行操作,如添加或删除,当添加时,Fragment处于启动状态,当删除时,Fragment处于销毁状态。
创建Fragment
public class NewListFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater,ViewGroup container,
Bundle savedInstanceState){
View v=inflater.inflater(R.layout.fragment,container,false);
return v;
}
}
注意Android系统中提供了两个Fragment类,分别是android.app.Fragment和android.support.v4.app.Fragment。如果NewListFragment类继承的是android.app.Fragment类,则程序只能兼容3.0版本以上的Android系统。如果NewListFragment类继承的是android.support.v4.app.Fragment类,则程序可以兼容1.6版本以上的Android版本
在Activity中添加Fragment
– 在Activity中使用Fragment时,可以通过两种方式将Fragment添加到Activity中,
一种是通过布局文件添加,一种是通过代码打开动态添加
– 通过布局文件添加Fragment
<fragment
android:name="cn.itcast.NewsListFragment" //自定义Fragment的完整路径
android:id="@+id/newslist"
android:layout_width="match_parent"
android:layout_height="match_parent">
</fragment>
– 在Activity中代码动态添加Fragment
① 创建一个Fragment的实例对象
② 获取fragmentManager(Fragment管理器)的实例
③ 开启FragmentTransaction(事务)。
④ 向Activity的布局容器(一般为FrameLayout)中添加Fragment
⑤ 通过commit()方法提交事务。
NewsListFragment fragment =new NewsListFragment();//实例化Fragment对象
FragmentManager fm=getFragmentManager();//获取FragmentManager实例
FragmentTransaction beginTransaction=fm.beginTransaction();//开启事务
beginTransaction.replace(R.id.ll,Fragment);//添加Fragment
beginTransaction.commit();//提交事务