Fragment分解使用

Fragment碎片:作为Activity的一部分,不能单独使用;

1. Fragment特点:

(1)一个Fragment可以在多个Activity中重用;

(2)一个Activity内部可以嵌入多个Fragment;

2. Fragment生命周期:

1)启动app:

Activity:onCreate()àonStart()àonResume();

Fragment:

onAttach()àonCreate()àonCreateView()àonActivityCreated()àonStart()àonResume();

2)运行状态到暂停状态:

Activity:onPause()àonStop();

Fragment:onPause()àonStop();

3)暂停状态到运行状态:

Activity:onRestart()àonStart()àonResume();

Fragment:onStart()              àonResume();

4)运行状态到销毁状态:

Activity:  onPause()àonStop()àonDestroy();

Fragment:onPause()àonStop()àonDestroyView()àonDestroy()àonDetach();

(1)onAttach():关联Fragment和Activity;可以在此方法中获取当前Fragment所在的Activity;

(2)onCreate():Fragment创建时调用此方法;可以初始化View的控件;

(3)onCreateView():绘制Fragment的UI界面时调用此方法;必须返回一个View对象,如果返回为null,则该Fragment不会显示内容;

(4)onActivityCreated():当前Fragment所在Activity的onCreate()执行完成后回调此方法;

(5)onStart():能看到部分界面但是不能交互;

(6)onResume():运行状态,可以交互;

(7)onPause():暂停状态,不能交互;

(8)onStop():停止状态:看不到UI界面;

(9)onDestroyView():Fragment从Activity中移除View时回调此方法;

(10)onDestroy():Fragment被销毁时回调的方法;

(11)onDetach():Fragment和所在的Activity失去关联回调此方法;

3. 创建Fragment:

(1)创建Fragment的xml布局文件;

(2)创建Fragment子类,继承Fragment类或者Fragment子类;

(3)重写回调方法onCreate(), onCreateView(), onPause()等方法;

1)onCreate():创建Fragment时回调此方法,可以初始化View以外的控件;

2)onCreateView():绘制Fragment的UI界面时回调此方法,必须返回一个View视图对象,作为当前Fragment的显示视图;

该方法传入布局加载器,用该布局加载器调用inflate()加载fragment的布局文件,传入三个参数:参数1:要加载的Fragment布局文件;参数2:该Fragment所在的容器;参数3:布尔值;之后返回布局加载器加载的视图;

注意:(1)如果参数2设置为null,则会直接返回创建的视图;

(2)(推荐)如果参数2设置为传入的container容器,参数3为false,则会从容器中得到LayoutParams,对要加载的视图设置LayoutParams;

(3)如果参数2设置为传入的container容器,参数3为true,则将要加载的子视图放在container容器中;

4. 将Fragment嵌入到Activity中:

(1)第一种方式:静态标签添加:

使用fragment标签,必须添加属性id指定当前fragment的id和属性name指定包名;

(2)第二种方式(常用):代码动态嵌入:

1)获取碎片管理器,上下文调用getFragmentManager()获得FragmentManager对象;

2)开启事务,FragmentManager对象调用beginTransaction()获得FragmentTransaction对象;

3)动态将Fragment嵌入到Activity中,包括add()添加,replace()替换,remove()移除等;

添加和替换时需要传入两个参数:参数1:将Fragment放入的容器中;

参数2:要放进容器中的Fragment对象;

4)提交事务,FragmentTransaction对象调用commit()提交;

注意:事务一定进行提交之后,才会运行;

时间: 2024-08-27 15:53:05

Fragment分解使用的相关文章

Fragment学习笔记

Fragment为大量型号,尺寸,分辨率的设备提供了一种统一的UI优化方案.将Activity分解为多个Fragment,将极大地提高UI的灵活性,也更容易为一些新的设备配置带来更好的用户体验. onCreate: 创建Fragment时系统调用它. onCreateView: 首次绘制用户界面时系统调用这个方法. onPause: 当用户离开Fragment时系统调用此方法. onAttach: 当Fragment与Acitivity绑定时调用. onActivityCreated: 当Fra

Unity中Mesh分解与边缘高亮加上深度检测

一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMesh对应的Material.如一个桌子的Mesh,其实有二个材质,分别对应二个SubMesh,一个桌面和一个桌脚,点击桌面后,只有这个桌面高光,而不是整个桌子,并且能单独更换这个桌面的Material. 我们知道Unity中,Mesh和Ogre一样,也是可以有多个SubMesh,每个SubMesh有

url各部分组成分解

url各部分组成分解介绍:关于url可能大家都不陌生,第一印象就是网址.但是深究起来,不少朋友并明白里面的一些细节,下面就来进行一下分解.scheme://host:port/path?query#fragment:(1).scheme:通信协议,常用的http,ftp,maito等.(2).host:主机,服务器(计算机)域名系统 (DNS) 主机名或 IP 地址.(3).port:端口号,整数,可选,省略时使用方案的默认端口,如http的默认端口为80.(4).path:路径,由零或多个"/

Python3标准库:urllib.parse分解URL

1. urllib.parse分解URL urllib.parse模块提供了一些函数,可以管理URL及其组成部分,这包括将URL分解为组成部分以及由组成部分构成URL. 1.1 解析 urlparse()函数的返回值是一个ParseResult对象,其相当于一个包含6个元素的tuple. from urllib.parse import urlparse url = 'http://netloc/path;param?query=arg#frag' parsed = urlparse(url)

Android 导航条效果实现(六) TabLayout+ViewPager+Fragment

TabLayout 一.继承结构 public class TabLayout extends HorizontalScrollView java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.HorizontalScrollView ? android.support.design.widget.TabLayout 二.TabLayou

安卓性能优化之Activity和Fragment通过onSaveInstanceState()保存和恢复数据

Activity和Fragment 都有自己的生命周期,而且很类似.Fragment比Activity多了onAttach()和onCreateView()这些方法.整体它们两者是一样的周期,都会经历从创建视图( onCreate(),onCreateView(),onStart() )到暂停( onPause(), onStop() ) 到重新返回( onResume() ) 到最后销毁( onDetroyView(), onDestroy() ) 这些方法. 之前有提过,熟悉组件的这些生命周

fragment跳转

activity的布局代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match

codevs 2549 自然数和分解

时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题目描述 Description 把自然数N分解为若干个自然数之和,输出方案数. 输入描述 Input Description N,(1≤n≤50) 输出描述 Output Description 方案数 样例输入 Sample Input 5 样例输出 Sample Output 7 数据范围及提示 Data Size & Hint 5 可分为 1 1 1 1 11 1 1 21 1 31 2 21 42 35

【BZOJ2227】【ZJOI2011】看电影 [组合数学][质因数分解]

看电影 Time Limit: 10 Sec  Memory Limit: 259 MB[Submit][Status][Discuss] Description 到了难得的假期,小白班上组织大家去看电影.但由于假期里看电影的人太多,很难做到让全班看上同一场电影,最后大家在一个偏僻的小胡同里找到了一家电影院.但这家电影院分配座位的方式很特殊,具体方式如下: 1. 电影院的座位共有K个,并被标号为1…K,每个人买完票后会被随机指定一个座位,具体来说是从1…K中等可能的随机选取一个正整数,设其为L.