Fragment(一)快速入门之使用

来源:互联网 发布:重庆时时彩后二软件 编辑:程序博客网 时间:2024/05/19 12:28
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">@Overridepublic 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相关的Fragmentfm = getSupportFragmentManager();// 实例化自定义FragmentFragment_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(二)通信





0 0
原创粉丝点击