Android Fragment 入门

概述

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,448评论 25 707
  • 参考: 本文参考 W3C 的 CSS 伸缩盒布局模组 在 伸缩盒 上的css设置 以下这些属性,是必须在**盒上设...
    mary_s阅读 857评论 0 0
  • 她是谁? 你不认识吧? 她的阿妈是月亮 她的阿爸是太阳 她从小泡着海水长大 她的阿爸阿妈问她 孩子,你喜欢什么 她...
    风起龙飞阅读 326评论 2 17
  • 2017年2月,我竟然24了,过去的一年竟是说的多做的少了,想的多动的少了,想要的太多付出却变得少了。 ...
    迷失的肖恩阅读 471评论 0 0
  • 1. 吹开桃花的风 吹开樱花 一笔带过疑虑的心情 燕子、燕子 乘着心的翅膀 来到四月京城 春光四溢你是谁的女人 胸...
    牛敏阅读 238评论 1 3