美文网首页
Android Fragment 入门

Android Fragment 入门

作者: IT一书生 | 来源:发表于2018-03-26 20:02 被阅读22次

    概述

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

    布局控件 使用帧布局

    <FrameLayout 
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:id="@+id/fl_container">
    </FrameLayout>
    
    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 入门

          本文链接:https://www.haomeiwen.com/subject/zeofqftx.html