Android Fragment的用法实例详解
作者:达叔小生 发布时间:2022-01-21 03:39:40
碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。
Fragment组件
Fragment是Android 3.0的时候被引入的,主要目的是为了给大屏幕(如平板电脑)添加动态和灵活的UI支持。利用Fragment实现更好的用户体验。
Fragment加载
1.静态加载:添加Fragment到Activity布局中,以xml的形式。
2.动态加载:
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
</LinearLayout>
//动态加载
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方法
1.replace()为FragmentManager的方法。
2.add()添加
3.remove()删除
总结
以上所述是小编给大家介绍的Android Fragment的用法实例详解网站的支持!
来源:https://www.cnblogs.com/dashucoding/archive/2018/08/07/9434506.html
猜你喜欢
- 在客户端中,为了防止界面假死状态,或者不能拖动界面,可以使用BackgroundWorker。1.在界面上拖动一个BackgroundWor
- cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持
- Java 本身就自带 JS 引擎,自从 Java 1.6 开始就支持了,愈来愈好。我对 js 比较熟悉,因此有个大胆的想法,为什么不用自带
- 前言在mybatis和mybatis plus里,如果你的实体字段是一个枚举类型,而在数据表里是整型,这时在存储时需要进行处理,默认情况下,
- 一、JVM 内存模型根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1、虚拟机栈:每个线程有一个
- 本文实例讲述了Android使用AudioManager修改系统音量的方法。分享给大家供大家参考,具体如下:下面介绍几个AudioManag
- 前言记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑结论:给心急的人。 直接在
- 一、SpringMVC使用1.工程创建创建maven工程。添加java、resources目录。引入Spring-webmvc 依赖。<
- 话不多说,请看代码:System.Math.Abs(float value);System.Math.Abs(decimal value);
- 一、deleteById 和 delete为什么要把这两个方法放在一起呢?我们先看源码再说deleteById(Id id)(通过id进行删
- 一、选择结构大纲if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构二、if单选择结构我们很多时候需要去判断一个东
- 要说,这也是一个很简单的功能,没必要开一篇博客这么大动干戈。 对于一张知道全路径的照片,如果其路径包含后缀名的话,要取得后缀名,只需要一行代
- 本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下package com.gj5u.publics.util;
- 前言本文主要学习函数的相关内容。1、函数是什么? * 中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, proc
- synchronizedsynchronized可以用来同步块,同步方法。同步块可以用来更精确地控制对象锁,控制锁的作用域。(锁
- 继承的概念及定义概念:继承机制是面向对象程序设计为了提高代码复用率的一种手段,它可以保持原类特性的基础上进行拓展,简单来说继承是类层次的复用
- C#书写规范 一、命名 对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助。名称应该说明“什么”而不是“如何”
- ajax简介 Ajax 即“Asynchronous Javascript An
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullP
- 在程序设计过程中,我们总是希望自己设计的程序是天衣无缝的,但这几乎又是不可能的。即使程序编译通过,同时也实现了所需要的功能,也并不代表程序就