Fragment 入门

来源:互联网 发布:gre知乎 编辑:程序博客网 时间:2024/06/03 15:28


#Android3.0开始引入这个新特性。主要用于实现一个多任务的界面。
    fragement是activity的子界面,是运行在activity里面的。

# mainactivity 中的布局控件  使用帧布局

1
2
3
4
5
<FrameLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/fl_container">
    </FrameLayout>

# 注意:继承fragment 要求最低版本是11 也就是3.0  fragment刚开始是为平板准备的,现在用的也越来越多

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 的显示步骤
步骤:1.创建一个fragment的类,继承了父类Fragment;2.创建fragment的布局文件;3.在代码中显示fragment的子界面;    1.在fragment的onCreateView方法中,加载布局文件,显示出来;    2.在activity中,创建fragment对象;    3.创建fragment管理器;    4.通过fragment管理器得到fragment事务;    5.调用发ragment事务的方法,显示fragment子界面;    6.提交fragment事务;代码:
1
2
3
4
5
6
7
8
9
10
    // 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();
 
注意:1.使用replace()方法是因为这里面界面相互替换,要是添加子界面就用add()方法 2.不同的业务要用不同的事务来提交,所以事务不能为成员变量 3.事务的作用:是为了保证一个界面里面显示的多个界面要么同时显示成功,要么同时显示失败

#fragment 向下兼容问题

android-support-v4.jar:是为了让高版本的api能够向下兼容,v4就表示向下兼容到api级别为4的版本.修改的步骤:1.在Fragment类中,继承support-v4中的Fragment;2.在activity中,让activity继承support-v4中的FragmentActivity;3.在方法中,把所有与fragment相关api都是用support-v4中的api;
1
2
3
4
5
6
**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();
      android.support.v4.app.FragmentTransaction


0 0
原创粉丝点击