android学习笔记之Fragment(一)
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(一)相关推荐
- Android学习笔记之Fragment的两种使用方法
一.第一种方法: (1)Fragment的第一种使用方法是使用fragment加载单独的布局文件:(也就是xml的方式实现) 结构如下: activity_main.xml主要是在一个线性布局中添加两 ...
- Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法
Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法 今天修改一个比较奇怪的bug: 在操作一个事件的时候,使用eventbus来监听事件,断点发现有时候是会执 ...
- Android学习笔记:TabHost 和 FragmentTabHost
2019独角兽企业重金招聘Python工程师标准>>> Android学习笔记:TabHost 和 FragmentTabHostTabHost命名空间:android.widget ...
- Android学习笔记:TabHost 和 FragmentTabHost(转)
Android学习笔记:TabHost 和 FragmentTabHost(转) 转自:http://www.cnblogs.com/asion/p/3339313.html 作者:Asion Tan ...
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- Android学习笔记第五篇--网络连接与云服务(一)
Android学习笔记第五篇–网络连接与云服务 第一章.无线连接设备 除了能够在云端通讯,Android的无线API也允许在同一局域网内的设备通讯,**甚至没有连接网络,而是物理具体相近,也可以相 ...
- Android学习笔记21:ImageView获取网络图片
Android平台有3种网络接口可以使用,它们分别是:java.net.*(标准java接口).org.apache(Apache接口)和android.net.*(Android网络接口).本文将使 ...
- Android学习笔记(七):多个Activity和Intent
根据www.mars-droid.com:Andriod开发视频教学,先跳过书本<Beginning Android 2>的几个章,我是这两个资源一起看,需要进行一下同步.先初步了解一下应 ...
- Android学习笔记26:图片切换控件ImageSwitcher的使用
在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...
最新文章
- Android外设存储设备的访问及测试
- 【数据架构解读】基于阿里云数加StreamCompute和MaxCompute构建的访问日志统计分析...
- 学习虚幻4需要储备的知识(2D游戏开发者向)
- dj打碟怎么学_学DJ打碟 - Rane声卡连接
- 【转】 VC MFC 钩子 实现 自绘 窗体 标题栏 非客户区
- Nginx学习笔记(二) Nginx--connectionrequest
- c语言实现语音检测vad_AI大语音(二)——语音预处理
- python 车牌识别简单_如何用 Python 识别车牌
- 数据库敏感数据加密技术
- wind7计算机控制面板在哪,联想win7系统控制面板在哪里打开
- 帆软日期格式转换_自定义函数把阳历转换成阴历
- 插入视频短代码WordPress函数wp_video_shortcode
- 码率,帧率,分辨率_详解
- 如何在Win11调出IE11浏览器?
- 2021-08-29 UML笔记
- 最不可思议的巧合,这些电影一定是穿越者拍的了!
- 百事可乐网络营销浅析
- Ng-Zorro框架静态加载SVG图标
- windows的mstsc远程报错
- 微信红包接口 java_java调用微信现金红包接口的心得与体会总结
热门文章
- pdf文件的处理(弄成小容量大小的文本文件)
- 在计算机网络中vc是,计算机网络——第一章 体系
- android MVP连接服务器,Android之MVP模式实现登陆和网络数据加载
- 鸽主姓名查询成绩_SQL学习之旅-Select简单查询
- oracle监听怎么关闭,Oracle数据库启动监听、关闭
- python模拟内置函数all_python内置函数all和any
- python安装request失败_在python 虚拟环境下使用命令pip install -r request 安装软件失败?...
- php极验证,WebGeeker-Validation: 一个强大的 PHP 参数验证器
- python修改csv文件字段顺序_Pandas中DataFrame交换列顺序的方法实现
- c++ 的 stl模板库_C ++中的标准模板库(STL)