前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android交流会-碎片Fragment,闲聊单位与尺寸

Android交流会-碎片Fragment,闲聊单位与尺寸

作者头像
达达前端
发布2019-07-03 12:24:10
1.2K0
发布2019-07-03 12:24:10
举报
文章被收录于专栏:达达前端

标题图

  • 女孩:又周末了哦~
  • 男孩:那么今日来开个交流会,我们也学一学人家高大尚的大会,自己开一个,广州站,Android开发攻城狮交流会~

1.Fragment概要:

Android从3.0开始引入了Fragment的概念,中文意思为碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。

需要掌握的知识点有:Fragment概要,生命周期,加载的方法(分静态和动态加载),Fragment与Activity之间的通信哦,掌握这些基础就OK了。

对于理解Fragment,可以说你在生活中看过的新闻,点击进入新闻详情界面。

  • 女孩:Fragment有它自己的生命周期吗?
  • 男孩:有的,它有自己的生命周期,不过它的生命周期依赖activity的生命周期,如同夫妻一样,不过这有点像其中一方离开不了另一方的感觉~

2.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():

片段与其活动不再相关联。

  • 女孩:生命周期介绍完了?
  • 男孩:嗯,介绍完了,这些就是了,图片的提供是官方的,可以多看看,Fragment的生命周期可以和activity的生命周期一起了解,这比较容易理解~

制作底部导航栏以及Fragment实现切换功能

图片资源:

需要底部三个点击按钮的图片资源:

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文件夹中

  • 女孩:哥,这些图片资源我没有哦~
  • 男孩:没关系,了解一下就行,有这需要就行,懂得运用就行~

activity_mian布局

  • 女孩:举例子了吗?
  • 男孩:实例一下,最后再慢慢细分~

在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

三个fragment的显示和切换

在MainActivity里把AppCompatActivity改为FragmentActivity

把Fragment加到Activity里的代码

通常用这个来展示,但是代码过长,我们来简化一下

我们先来添加一个setMain() 方法,来显示打开界面时,显示的初始页面

实现点击底部导航栏来切换响应的fragment,我们在onClick()中添加即可

图片

3.创建Fragment

创建一个Fragment的子类,继承Fragmennt类,重写onCreateView()方法。

静态:

图片

动态:

动态加载步骤:

  1. 创建添加的Fragment实例;
  2. 获取FragmentManager,调用getFragmentManager()方法;
  3. 开启事务,调用beginTransaction()方法;
  4. replace();
  5. 调用commit()方法提交。

图片

4.Fragment和activity之间的通信

Fragment和activity之间的通信,FragmentManager的findFragmentById()方法来获取相应碎片的实例。

MyFragment myFragment = getFragmentManager().findFragmentById(R.id.fragment);

接着通过调用getActivity()方法来获取当前片段和相关联的活动实例:

MainActivity activity = getActivity();

闲聊单位和尺寸

px,pt,dp,sp

  • 女孩:哥,px,pt是?
  • 男孩:px在Android中为最小元素单元,px为像素,pt是磅数的意思,在Android通常作为字体的单位来用~
  • 女孩:那dp和sp呢?
  • 男孩:dp是密度无关像素的意思,sp作为与dp相同的设计理念,是可伸缩像素的意思~

到此就ok了,接下来会不断往高处学,让我们一起慢慢探索吧~

小礼物走一走 or 点赞

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Fragment概要:
  • 2.Fragment生命周期
  • 制作底部导航栏以及Fragment实现切换功能
  • activity_mian布局
  • 实现底部导航栏的响应
  • 三个fragment的显示和切换
  • 3.创建Fragment
  • 4.Fragment和activity之间的通信
  • 闲聊单位和尺寸
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档