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


猜你喜欢
- 闲来无事,用C++做了一个图书管理系统,主要有借书、还书、图书管理、用户管理等功能,主要用到的技术有容器和文件,以及类的封装#include
- springboot连接sqllite的坑2021-01-04 13:54:14.178 SvUSService [main] ERROR
- 上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学习计划简要介绍了Android系统进程间通
- 在进行C#应用程序开发的过程中,经常需要多窗体之间进行数据通信,本文举几个例子,把几种常用的通信方式总结一下,窗体界面如下图所示: 
- 数组翻转的方法(java实现),数组翻转,就是将数组倒置,例如原数组为:{"a","b","
- 1.替换符的使用(1)在 app-android-defaultConfig (或者多渠道打包)下面可以这样使用android { &nbs
- 本文实例为大家分享了java绘制五子棋棋盘的具体代码,供大家参考,具体内容如下源码:import javax.imageio.ImageIO
- 一,哈希表(Hashtable)简述在.NET Framework中,Hashtable是System.Collections命名空间提供的
- 在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低。由于开始时使用JPA内部的双向关联
- dataGridView动态绑定数据1.动态绑定DataTable数据DataGridView dgv = new DataGridView
- Android 加载大图及多图避免程序出现OOM(OutOfMemory)异常1、高效加载大图片我们在编写Android程序的时候经常要用到
- mybatis resulttype 返回值异常在使用mybatis时。resulttype返回自定义的类时,可能返回的类中字段数据存在缺失
- 1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们
- 本文实例讲述了C#实现对数组进行随机排序类。分享给大家供大家参考。具体如下:这个一个扩充C#随机数发生器的类,可以随机生成指定范围的数字,可
- 听老师说,在以后的学习中大部分的异常都是空指针异常。所以抽点打游戏的时间来查询一下什么是空指针异常一:空指针异常产生的主要原因如下:(1)当
- 1 双向链表1.1 双向链表介绍相较单链表,双向链表除了data与next域,还多了一个pre域用于表示每个节点的前一个元素。这样做给双向链
- 一、OutputStreamWriter流 API说明:OutputStreamWriter是从字符流到
- 对于自定义注解这里就不唠叨了,百度一大堆,这里有我一个自定义注解@Retention(RetentionPolicy.RUNTIME)@Ta
- 本文实例讲述了Android开发实现的计时器功能。分享给大家供大家参考,具体如下:效果图:布局:三个按钮 加上一个Chronometer&l
- 本文实例讲述了Jaxb2实现JavaBean与xml互转的方法。分享给大家供大家参考,具体如下:一、简介JAXB(Java Architec