android的fragment用法,Android Fragment用法知识点的讲解

d13d42262c5e5b001c579685395a6225.png

Android Fragment用法的讲解

碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。

916c6c27f8b79282452cd7eda5889a9a.png

Fragment组件

2f95c674ef61c50694264e1834ff3975.png

Fragment是Android 3.0的时候被引入的,主要目的是为了给大屏幕(如平板电脑)添加动态和灵活的UI支持。利用Fragment实现更好的用户体验。

d7f15bcffbb3481fba7aa5df6972e510.png

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有四种状态:运行状态,暂停状态,停止状态,销毁状态。

图片来源官方:

404c21789f7c803e41508129dd12ce8c.png

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通信

e871cc64c25c99e57b1143af09a2e6a4.png

MyFragment myFragment = (MyFragment)fragmentManager(). findFragmentById(R.id.layout);

MainActivity activity=(MainActivity)getActivity();

Fragment方法

replace()为FragmentManager的方法。

add()添加

remove()删除

结语

本文主要讲解 Android Fragment用法知识点的讲解

下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注

小礼物走一走 or 点赞

3190228e3d6117a7acc81aefcc3bab23.png

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,其实所谓的解析模块就是为 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值