2019独角兽企业重金招聘Python工程师标准>>>

Fragment(Android3.0 API Level 11引入,之前的怎么办? 没关系可以使用Android support library 注意:使用这个库你的Activity需要继承FragmentActivity):

Fragments可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。

Fragments的主要优点:你可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。

每个Fragment都是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。

Fragments提供一个新的方式让你在不同的安卓设备上统一你的UI。

创建新的Fragments:

大多数情况你是需要给Fragment设计UI的,但是也有可能你创建一个Fragment不包含任何UI,用来给Activity提供一些后台的帮助。

那么如果我需要UI呢,代码中如何创建或者加载?

DEMO: 代码中

public class MySkeletonFragment extends Fragment {
   @Override
   public View onCreateView(LayoutInflater inflater,
                                 ViewGroup container,
                                 Bundle savedInstanceState) {
     // 创建或者解析加载一个视图,然后返回作为Fragment的UI

// 如果这个Fragment没有UI,那么返回NULL

return inflater.inflate(R.layout.my_fragment, container, false);
   }
}

在前提的前提还是先讨论下Fragment的生命周期:

首先明白的一点就是,Fragment是Activity的一部分,所以Activity的生命周期也是会影响到它的。

Fragment的生命周期像极了Activity:

另外一张来自Google官网的截图:

那么我们根据这图从上往下:

1.onAttach() 当Fragment附加到父窗口Activity上时。(成为Activity的一部分)

@Override
public void onAttach(Activity activity) {
   super.onAttach(activity);
   // 这个方法你可以获取到父Activity的引用。

}

2.onCreate 这个方法一般做一些Fragment的初始化操作

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // 初始化Fragment

}
3.onCreateView 一旦Fragment已经创建,为了去给Fragment创建它自己的UI,这个方法就是意义所在。

@Override
public View onCreateView(LayoutInflater inflater,
                               ViewGroup container,
                               Bundle savedInstanceState) {

     // 创建或者解析加载一个视图,然后返回作为Fragment的UI

     // 如果这个Fragment没有UI,那么返回NULL

return inflater.inflate(R.layout.my_fragment, container, false);

}

4.onActivityCreated 当父Activity和当前的Fragment的UI都完整创建完的时候被调用

@Override
public void onActivityCreated(Bundle savedInstanceState) {
   super.onActivityCreated(savedInstanceState);

   // 完成Fragment的初始化,不对前面不是已经初始化好了么?

   //这个方法主要是初始化那些你需要你的父Activity或者Fragment的UI已经被完整初始化才能初始化的元素。

  //具体你看图中的位置你能看出点端倪来。比如UI的元素没被解析反射进来,你还想用? 想得美,等它初始化完,你再用。
}

5.onStart 、onResume 、onPause这些看看就懂不解释了

6.别忘了Fragment也是有onSaveInstance的

@Override
    public void onSaveInstanceState(Bundle savedInstanceState) { 
      //这个Bundle会被传入到onCreate、onCreateView
      super.onSaveInstanceState(savedInstanceState);
    }
7.onDestoryView 当你的Fragment的UI被分离的时候

@Override 
     public void onDestroyView() { 
        //清除所有跟视图相关的资源

super.onDestroyView();
      }
8.onDestory 生命周期的末尾了。。。

@Override
        public void onDestroy(){ 
          //清除所有资源包括要结束的线程,关闭数据库连接等等。
          super.onDestroy();
        }
9.onDetach 当你的Fragment从父activity身上分离的时候

@Override
           public void onDetach() {
             super.onDetach();
           }

转载于:https://my.oschina.net/wangjunhe/blog/99466

android学习笔记之Fragment(一)相关推荐

  1. Android学习笔记之Fragment的两种使用方法

    一.第一种方法: (1)Fragment的第一种使用方法是使用fragment加载单独的布局文件:(也就是xml的方式实现) 结构如下: activity_main.xml主要是在一个线性布局中添加两 ...

  2. Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法

    Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法 今天修改一个比较奇怪的bug: 在操作一个事件的时候,使用eventbus来监听事件,断点发现有时候是会执 ...

  3. Android学习笔记:TabHost 和 FragmentTabHost

    2019独角兽企业重金招聘Python工程师标准>>> Android学习笔记:TabHost 和 FragmentTabHostTabHost命名空间:android.widget ...

  4. Android学习笔记:TabHost 和 FragmentTabHost(转)

    Android学习笔记:TabHost 和 FragmentTabHost(转) 转自:http://www.cnblogs.com/asion/p/3339313.html 作者:Asion Tan ...

  5. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  6. Android学习笔记第五篇--网络连接与云服务(一)

    Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 ​ 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...

  7. Android学习笔记21:ImageView获取网络图片

    Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...

  8. Android学习笔记(七):多个Activity和Intent

    根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...

  9. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

最新文章

  1. 实战Transformer在NLP和医学图像分割领域的应用
  2. MOCTF-Web-登录就对了
  3. 数据结构java语言kmp_数据结构(java语言描述)模式匹配——KMP算法
  4. DOM(document object model),文档对象模型
  5. 搭建一个微服务商城到底可以有多快?
  6. Chrome 75 开发者工具新特性
  7. Rockchip Android12 Codec2 插件 多线程实现代码
  8. UI设计师必备|Web设计尺寸规范
  9. 【Python计算检验值】一元线性回归拟合,t值与p值,显著性检验
  10. 北海市卫生学校计算机教室,北海市卫生学校:借力智慧校园,开启德育管理新篇章...
  11. DevExpress报表控件v21.2 - 全新的Visual Studio报表设计器
  12. Linux转发性能评估与优化(转发瓶颈分析与解决方案)
  13. 苹果手机屏幕镜像怎么连接电视_创维电视怎么连接手机?图解创维电视连接手机步骤...
  14. 怎么测试ftp服务器上传文件,ftp服务器文件上传测试
  15. 全面改革个税关乎民生和正义
  16. LoRaWAN协议-物理层(PHY)详解
  17. swoole开启了守护进程如何关掉
  18. 部署 redis 和基本操作
  19. 【C语言基础-」TurboC环境】-」bioskey函数详细分析
  20. python处理word_Python操作word手册

热门文章

  1. 数据结构上机实践第二周项目1
  2. stl之queue队列容器
  3. html如何与js链接,链接index.html client.js和server.js
  4. (03)两个模型的交集、并集、差集
  5. html textarea粘贴事件,javascript在textarea中捕获粘贴事件
  6. linux阵列建立分区,在Linux上创建磁盘阵列———RAID-5
  7. 3层b+树索引访问磁盘次数_深入理解MySQL索引底层实现原理丨技术干货
  8. 自学Java要不要背熟语法_JAVASE经典面试问题(必须熟背),你Get到了吗?
  9. 关系查询处理 查询优化 论文_叮!你有一份留学论文攻略,请查收~
  10. 计算机管理 网络延时打开,如何解决网络延时-如何解决局域网访问延迟问题?通过局域网访问网内机子,有时候半天没 爱问知识人...