标题图
Android从3.0开始引入了Fragment的概念,中文意思为碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。
需要掌握的知识点有:Fragment概要,生命周期,加载的方法(分静态和动态加载),Fragment与Activity之间的通信哦,掌握这些基础就OK了。
对于理解Fragment,可以说你在生活中看过的新闻,点击进入新闻详情界面。
Fragment有自己的生命周期,但它会受所属的Activity的生命周期影响,因为一个Fragment是被嵌入到一个Activity中的。
Fragment有四种状态:运行状态,暂停状态,停止状态,销毁状态。
接下来看看Fragement的生命周期,图片来源官方:
图片
从上而下:
添加Fragment -> onAttach() -> onCreate() -> onCreateView() -> onActivityCreated() -> onStart() -> onResume() -> 运行状态 -> onPause() -> 暂停状态 -> onStop() -> 停止状态 -> onDestroyView() -> onDestroy() -> onDetach() -> 销毁状态。
onAttach():
一旦片段与其活动相关联就被调用;
onCreate():
片段被调用创建;
onCreateView():
创建并返回相关的视图结构;
onActivityCreated():
表示活动已被创建完成了,这里是activity创建成功;
onStart():
片段对用户可见;
onResume():
片段与用户开始交互;
onPause():
片段与用户不再交互;
onStop():
片段不再对用户可见;
onDestroyView():
销毁与其View相关资源;
onDestroy():
销毁一切片段;
onDetach():
片段与其活动不再相关联。
图片资源:
需要底部三个点击按钮的图片资源:
main_button_1.png,
main_button_2.png,
main_button_3.png.
以及点击变换的图片资源:
main_button_1_selected.png,
main_button_2_selected.png,
main_button_3_selected.png.
以上图片资源都放进drawable文件夹中
在MainActivity页面中主要有两个区域:
一个是放Fragment 的main_body
一个是放底部导航栏的main_bottom_bar
主要的Fragment代码块:
图片
主要的底部导航栏的代码块:
图片
实例化控件:
图片
导航栏文本颜色和图片切换效果的方法写好了,接下来是点击响应的方法
给MainActivity加上View.OnClickListener接口
在生成的onClick()方法中加上导航栏区域的响应
别忘了在initView()中添加监听器
图片
然后通过我之前写的插件自动生成三个Fragemnt ,就可以了不用管生成的Fragement_1/2/3.java文件了,
插件文章
《 Android开发的插件Code Generator与LayoutCreator的安装与使用,提升你的开发效率 》
https://cloud.tencent.com/developer/article/1455576
在MainActivity里把AppCompatActivity改为FragmentActivity
把Fragment加到Activity里的代码
通常用这个来展示,但是代码过长,我们来简化一下
我们先来添加一个setMain() 方法,来显示打开界面时,显示的初始页面
实现点击底部导航栏来切换响应的fragment,我们在onClick()中添加即可
图片
创建一个Fragment的子类,继承Fragmennt类,重写onCreateView()方法。
静态:
图片
动态:
动态加载步骤:
图片
Fragment和activity之间的通信,FragmentManager的findFragmentById()方法来获取相应碎片的实例。
MyFragment myFragment = getFragmentManager().findFragmentById(R.id.fragment);
接着通过调用getActivity()方法来获取当前片段和相关联的活动实例:
MainActivity activity = getActivity();
px,pt,dp,sp
到此就ok了,接下来会不断往高处学,让我们一起慢慢探索吧~
小礼物走一走 or 点赞