fragment即碎片/片段 的意思
Fragment是Android3.0中 引入,主要针对大屏幕的平板电脑使用。
fragment代表了Activity的子模块,因此可以把fragment理解为Activity片段, 没有单独存在的价值,必须嵌入Activity中使用。
开发者使用fragment对UI组件进行分组、模块化管理(封装了一系列View的操作),可以更方便的在运行过程中更新Activity的用户界面,类似web开发中的ajax,可以局部刷新
1.Fragment的生命周期(一共有 11 个生命周期方法)
Fragment也有自己的生命周期,但取决于其所附属Activty的生命周期,如果Activty的生命周期是stop,则fragment是不能启动的,如果activity的生命周期destroy,则清除所有Fragment,详见下图
Fragmnet和Activity生命周期关系图:
2.Fragment的定义
Fragment,首先要创建一个Fragment的子类,并且复写Fragment的生命周期方法,当然不用所有方法都Override,根据需要复写即可。一般来说onCreateView方法必须复写:当Fragment绘制界面时会调用该方法。该方法必须返回一个View,该View也就是Fragment 所显示的View.此处也可以把Fragment看做是一个封装了一系列控件的View.
/**
* Fragment的生命周期演示
*
* @author Keno
*
*/
public class Fragment_Life extends Fragment {
<pre name="code" class="java">@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_life, null);
tvLife = (TextView) view.findViewById(R.id.tv_life_fragment);
Log.i("fragment", lifeMethod);
return view;
}
3.Fragment的布局
关于fragment布局,可以在activity_main.xml文件中指定位置放一个RelativeLayout或LinearLayout布局文件,创建fragment时,指定容器id就能把fragment存于指定位置
4.Fragment的加载显示
a)通过java代码动态加载
Fragment,首先实例化一个Fragment的管理对象FragmentManager,注意自动自带和v4包的区别
(Fragment两种加载方式)Activity.getFragmentManager()
and Fragment.getFragmentManager()
// 创建 Fragment管理器对象:管理和这个Activity相关的Fragment
fm = getSupportFragmentManager();
// 实例化自定义Fragment
Fragment_Life fragment = new Fragment_Life();
// 创建Fragment事务
transaction = fm.beginTransaction();
// 加载fragment 1.被填充容器id; 2.fragment对象; 3.填入fragment文件的描述
transaction.add(R.id.ll_fragment_base, fragment,
"It's my firstFragment");
// 提交事务
transaction.commit();
a)通过xml文件中静态添加
通过<fragment>元素添加Fragment,
注意:<fragment>的android:name属性必须指定Fragment的实现类,还须指定一个id
<fragment
android:id="@+id/fragment_test1"
android:name="com.keno.android.fragment.FragmentLayout"
android:layout_width="match_parent"
android:layout_height="200dp">
</fragment>
总结:本篇博客主要介绍了 Fragment的基础使用,关于其复杂应用即实现原理会在后续的文章中陆续更新...
下一篇:下一篇:Fragment(二)通信