Android Fragment 入门

概述

Android3.0开始引入这个新特性。主要用于实现一个多任务的界面。
fragement是activity的子界面,是运行在activity里面的。
继承fragment 要求最低版本是11 也就是3.0 fragment刚开始是为平板准备的,现在用的也越来越多

布局控件 使用帧布局



public class Fragment01 extends Fragment {

    /**
     * 初始化fragment的界面 加载fragment的布局文件,显示出来 
     * inflater 布局的填充器,是用来加载布局文件的 
     * container显示fragment的父级控件 
     * savedInstanceState baocunfragment的状态
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        // return super.onCreateView(inflater, container, savedInstanceState);
        // getActivity() 是得到fragment所运行在的activity对象
        // resource fragment对应的布局文件资源ID
        // root fragment界面显示的父级控件
        View view = View.inflate(getActivity(), R.layout.f01, null);
        // 返回view表示把view显示在当前的activity界面上,不返回就不显示
        return view;
    }
}

fragment 的显示步骤

  • 创建一个fragment的类,继承了父类Fragment;
  • 创建fragment的布局文件;
  • 在代码中显示fragment的子界面;
    1.在fragment的onCreateView方法中,加载布局文件,显示出来;
    2.在activity中,创建fragment对象;
    3.创建fragment管理器;
    4.通过fragment管理器得到fragment事务;
    5.调用发ragment事务的方法,显示fragment子界面;
    6.提交fragment事务;
    // 1.创建fragment01对象
    f01 = new Fragment01();
    // 2.得到系统的提供的fragmentManager
    fm = this.getFragmentManager();
    // 3.得到fragment的事务,他可以保证多个fragment要么同时显示成功,要么同时显示失败
    FragmentTransaction transaction = fm.beginTransaction();
    // 4.把f01的界面显示在activity中
    transaction.replace(R.id.fl_container, f01);
    // 5.提交fragment的事务,把界面显出来
    transaction.commit();

注意:

  • 使用replace()方法是因为这里面界面相互替换,要是添加子界面就用add()方法
  • 不同的业务要用不同的事务来提交,所以事务不能为成员变量
  • 事务的作用:是为了保证一个界面里面显示的多个界面要么同时显示成功,要么同时显示失败

fragment 向下兼容问题

android-support-v4.jar:是为了让高版本的api能够向下兼容,
v4就表示向下兼容到api级别为4的版本.
修改的步骤:

  • 在Fragment类中,继承support-v4中的Fragment;
  • 在activity中,让activity继承support-v4中的FragmentActivity;
  • 在方法中,把所有与fragment相关api都是用support-v4中的api;
  1. android.support.v4.app.Fragment
  2. public class MainActivity extends FragmentActivity{
    android.support.v4.app.FragmentActivity;

3.android.support.v4.app.FragmentManager;
// 得到系统的提供的fragmentManager fm = this.getSupportFragmentManager();
4.android.support.v4.app.FragmentTransaction

你可能感兴趣的:(Android Fragment 入门)