《第一行代码--Android》读书笔记之碎片

原创 2015年11月19日 13:12:38

碎片的基本用法:

碎片(fragment)是能嵌在活动中的UI片段,相当于mini型的Activity,有完整的布局,和生命周期。

  • 一个简单的碎片的创建过程:
    • 新建一个碎片布局,比如,fragment.xml
    • 自定义一个继承自Fragment类的类,并重写onCreateView()方法,动态加载碎片布局。
    • 在被嵌入碎片的Activity的布局文件中加入< fragment>标签,要注意添加android:name属性来显式指明要添加碎片的类名,完整的包名不能省略。
      比较一下活动的创建过程也很类似,但不同的是Activity要在onCreate()方法中调用setContextView()方法来动态加载布局。
public class LeftFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.left_fragment,container,false);
        return view;
    }
}
  • 动态加载碎片

    • 同样地,创建碎片布局和自定义碎片类
    • 在待添加碎片的活动中添加一个布局作为碎片的容器,比如FrameLayout
    • 创建待添加的碎片类的实例
    • 在活动中获取FragmentManager,通过getFragmentManager()得到
    • 通过FragmentManager开始一个事务fragmentTransaction,fragmentManager.beginTransaction()
    • 利用FragmentTransaction replace(int containerViewId, Fragment fragment)方法向容器加入碎片
    • 在提交事务之前调用addToBackStack()方法,将事务添加到返回栈
    • 通过commit()方法提交事务
  • 碎片与活动间通信

    碎片和活动都是不同的类当中,所以它们之间的通信要借助一个媒介,这个桥梁就是上面所提到的的FragmentManager。

    • 在活动中要获得碎片的实例,可以通过FragmentManager.findFragmentById()从布局文件中获取碎片的实例,通过此碎片实例就可以调用碎片里的方法了。
    • 在碎片中要获得活动的实例,可以通过getActivity()方法来得到与当前碎片相关联的活动实例。
    • 碎片与碎片间的通信,可以通过它们共同关联的活动做媒介。
    RightFragment rightFragment=(RightFragment)getFragmentManager().findFragmentById(R.id.Right_Fragment);

碎片的生命周期

这里写图片描述
这里写图片描述这里写图片描述


  • onAttach()//当一个Fragment对象关联到一个Activity时调用。
  • onCreate()//初始创建Fragment对象时调用。
  • onCreateView()//创建与Fragment对象关联的View视图时调用,即加载fragment布局的时候调用。
  • onActivityCreated()//当Activity对象完成自己的onCreate方法时调用,确保与之关联的活动已被创建
  • onStart()//Fragment对象在ui可见时调用。
  • onResume()//Fragment对象的ui可以与用户交互时调用。
  • onPause()//Fragment对象可见,但不可交互。有Activity对象转为onPause状态时调用。
  • onStop()//有空间完全遮挡;或者宿主Activity对象转为onStop状态时调用。
  • onDestroyView()//Fragment对象清理view资源时调用,也就是移除fragment中的视图。
  • onDestroy()//Fragment对象完成对象清理View资源时调用。
  • onDetach()//Fragment对象与Activity对象解除关联时调用。

与活动类似,当位于返回栈的处于停止状态的碎片被系统回收,可以通过onSaveInstanceState()方法保存数据,再通过onCreate()或onCreateView()中的bundle参数获得保存下来的数据。

限定符

用限定符可以实现动态加载布局,在不同的设备或者同一设备的不同状态下加载不同的布局。
常用的Android限定符
- land 提供给横屏设备的资源
- port 提供给竖屏设备的资源
- small 提供给小屏幕设备的资源
- normal 提供给中等屏幕设备的资源
- large 提供给大屏幕设备的资源

参考查阅的资料和文献:
Fragment学习—–简介与生命周期研究 http://blog.csdn.net/qianfu111/article/details/8948110

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android第一行代码读书笔记

从这里开始,进入android的专业开发大门。 活动,是android第一个大的组件。 android开发需要涉及到类的继承,所有活动从Activity这个类继承。 接下来是方法的重写或者说覆盖。...
  • androidTang
  • androidTang
  • 2015年10月09日 00:24
  • 450

【Android】读《第一行代码》笔记总结

第二章 感悟: 每一次学习,都会有新的收获 我相信我看到的奇迹,没有是平白无故产生的,它们是源于环环相扣的逻辑巧妙组合而成。 隐藏标题栏(p35) 在调用setContentView()之前,写...
  • ly1414725328
  • ly1414725328
  • 2015年09月26日 15:26
  • 1110

Android第一行代码读书笔记

从这里开始,进入android的专业开发大门。 活动,是android第一个大的组件。 android开发需要涉及到类的继承,所有活动从Activity这个类继承。 接下来是方法的重写或者说覆盖。...
  • androidTang
  • androidTang
  • 2015年10月09日 00:24
  • 450

第一行代码Android学习(十)

第一行代码Android学习:第十部分主要涉及到Android多线程编程和Service的用法
  • baidu_32237719
  • baidu_32237719
  • 2016年08月23日 09:44
  • 368

《第一行代码——Android》pdf

下载地址:网盘下载 目录: 编辑 第1章 ----------- 开始启程,你的第一行Android代码   1.1 了解全貌,Android王国简介2   1.1.1 ...
  • cf406061841
  • cf406061841
  • 2017年05月14日 00:09
  • 1275

《第一行代码》读书笔记(四)----碎片

碎片是什么碎片(Fragment)是可以嵌入在活动中的UI片段, 能让程序更合理使用大屏幕的空间. 可理解成一个迷你型的活动. 同活动一样, 能包含布局, 有自己的生命周期.碎片的使用方式简单用法目标...
  • mezipstream
  • mezipstream
  • 2015年09月03日 23:38
  • 323

《第一行代码——Android》作者郭霖源码

【3】第3章 软件也要拼脸蛋,UI开发的点点滴滴 【3.1】UIWidgetTest package com.example.uiwidgettest; import android.support...
  • mashang123456789
  • mashang123456789
  • 2017年02月25日 11:10
  • 1152

Android第一行代码学习笔记

1.隐藏标题栏requestWindowFeature(Window.FEATURE_NO_TITLE);注意这句代码必须要在setContentView之前调用 2.隐式Intent 声明: ...
  • chenzheng8975
  • chenzheng8975
  • 2016年12月16日 14:36
  • 304

历时一年,我的著作《第一行代码——Android》已出版!

其实我当初决定开始写博客的想法挺简单的,觉得自己搞技术这么多年了,总应该要留下点什么。既然没能写出什么出色的应用,那至少也要留下点文字分享给大家,以指引在我后面的开发者们,毕竟我也从前辈们的博客那里受...
  • sinyu890807
  • sinyu890807
  • 2014年07月17日 09:13
  • 122481

学习了《第一行代码》4.5章—一个简易版的新闻应用

这两天学习了Fragment的使用,跟Activity很相似。跟着书上的联系做了一个简易版的新闻应用,对于现在的我来说还是比较难的,只是照着葫芦画瓢把代码敲出来再去理解。好在基本都能看懂. 现阶段先不...
  • fiction48
  • fiction48
  • 2017年05月24日 00:22
  • 227
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《第一行代码--Android》读书笔记之碎片
举报原因:
原因补充:

(最多只允许输入30个字)