Android Fragment用法的讲解
碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。
Fragment组件
Fragment是Android 3.0的时候被引入的,主要目的是为了给大屏幕(如平板电脑)添加动态和灵活的UI支持。利用Fragment实现更好的用户体验。
Fragment加载
静态加载:添加Fragment到Activity布局中,以xml的形式。
动态加载:
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
//动态加载
MyFragment fragment = new MyFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
beginTransaction.add(R.id.layout,fragment);
beginTransaction.addToBackStack(null);
beginTransaction.commit();
第一步,获取一个FragmentManager对象,getFragmentManager()方法,beginTransaction()。
第二步,beginTransaction.add(),add()方法,容器视图资源Id。
第三步,调用addToBackStack(true)方法,目的为了允许用户通过按下返回按键返回到前一个Fragment状态,beginTransaction.commit()提交。
FragmentPagerAdapter和FragmentStatePagerAdapter
FragmentPagerAdapter适用于页面较少的情况,把UI分离,并没有回收,FragmentStatePagerAdapter适用于页面较多的情况,每次切换会回收内存的。
Fragment生命周期
Fragment有四种状态:运行状态,暂停状态,停止状态,销毁状态。
图片来源官方:
onAttach():
一旦片段与其活动相关联就被调用;
onCreate():
片段被调用创建;
onCreateView():
创建并返回相关的视图结构;
onActivityCreated():
表示活动已被创建完成了,这里是activity创建成功;
onStart():
片段对用户可见;
onResume():
片段与用户开始交互;
onPause():
片段与用户不再交互;
onStop():
片段不再对用户可见;
onDestroyView():
销毁与其View相关资源;
onDestroy():
销毁一切片段;
onDetach():
片段与其活动不再相关联。
打开界面:onCreate() -> onCreateView()->onActivityCreated()->onStart()-> onResume()
Home:onPause() -> onStop()
回到界面: onStart() -> onResume()
回退: onPause() -> onStop() ->onDestroyView() -> onDestroy()-> onDetach()
Fragment通信
MyFragment myFragment = (MyFragment)fragmentManager(). findFragmentById(R.id.layout);
MainActivity activity=(MainActivity)getActivity();
Fragment方法
replace()为FragmentManager的方法。
add()添加
remove()删除
结语
本文主要讲解 Android Fragment用法知识点的讲解
下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注
小礼物走一走 or 点赞
Android Service用法知识点的讲解
Android Service 学习Service相关知识点: android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务) ...
Android Fragment用法详解(2)--动态添加Fragment
在上一篇文章我们讲解了Fragment的最简单的用法.这次我们来说一说Fragment复杂一丢丢的用法.在代码 ...
android Fragment 用法小结
Fragment 是android 3.0引入的新API,是作为Activity的子模块,必须嵌入Activity才能使用. Activity 与 Fragment的关系: 一.依附性: 1. Fra ...
Android Fragment用法详解(1)--静态使用Fragment
先说明一下,本例子是运行在Android Studio下面的.同样的代码复制粘贴到Eclipse运行却会报错.具体原因我也没有细查.知道的哥们,留言通知下呗. Fragment,也就是碎片,本意是为了 ...
android Fragment用法
Fragment常用的三个类:android.app.Fragment 主要用于定义Fragmentandroid.app.FragmentManager 主要用于在Activity中操作Fragme ...
Android Fragment用法之给Activity创建事件回调
在某些案例中,可能需要Fragment与Activity共享事件.在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法.当Activity通过接口接受 ...
Android Fragment和FragmentActivity区别和用法
Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用 ...
Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系
Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...
【Android自学日记】【转】Android Fragment 真正的完全解析(下)
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Frag ...
随机推荐
基于傅里叶变换和PyQt4开发一个简单的频率计数器
小学期的课,要求写一个频率计数器,下面是我个人理解的频率计数 傅里叶变换的代码: # coding=utf-8 import numpy as np from scipy.i ...
Android 自定义线程池的实战
前言:在上一篇文章中我们讲到了AsyncTask的基本使用.AsyncTask的封装.AsyncTask 的串行/并行线程队列.自定义线程池.线程池的快速创建方式. 对线程池不了解的同学可以先看 An ...
H5项目常见问题汇总及解决方案
H5项目常见问题汇总及解决方案 H5 2015-12-06 10:15:33 发布 您的评价: 4.5 收藏 4收藏 H5项目常见问题及注意事项 Meta基础知识: H5页 ...
ural 1437. Gasoline Station
1437. Gasoline Station Time limit: 1.0 secondMemory limit: 64 MB Once a gasoline meter broke at a fi ...
RedHat 6.5 离线安装 apache2.4.23
第一部分:安装gcc等 rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm rpm -ivh cpp- ...
Hibernate详解(5)——Hibernate核心接口和工作原理
Hibernate核心接口 Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration .这五个接口构成了Hi ...
Java中string 创建对象时 “”和null的差别
null和""的差别 问题一: null和""的差别 String s=null; string.trim()就会抛出为空的exception String s ...
在idea的maven相关配置
1.下载maven 下载地址:点击 2.设置maven 打开maven目录下settings.xml 设置阿里中心仓库 alimaven&l ...
MyBatis源码解析(十二)——binding绑定模块之MapperRegisty
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6758456.html 1.回顾 之前解析了解析模块parsing,其实所谓的解析模块就是为 ...