智慧校园:04 底部导航栏联动(下)

一、前言

上一节,我们编写了标签类、补充了碎片布局,并且新建了容器,做完这些之后,我们应该考虑去做什么了呢?

二、思维导图在这里插入图片描述

三、具体过程

前面做好的准备工作:1)碎片布局补充;2)标签类编写;3)取消触摸滑动翻页效果。

3.1 容器的使用

五个标签类已经写好了,但是我们就这样直接上手用的话,在调用的时候,还需要对其一个一个的新建,代码可读性降低不说,还麻烦。所以,我们不妨使用一个容器,把新建的标签子类都放在容器中,要用时直接使取就行。
在这里插入图片描述
在这里插入图片描述

3.2 适配器

现在,我们已经准备好了底部导航栏布局和底部导航栏按键对应标签类,我们要实现的是点击RadioButton出现对应的标签类,所以接下来,要将底部导航栏与View联系起来,就使用到了适配器。
在这里插入图片描述

3.3 实现准备工作

桥梁已经搭建好了,所有的准备工作都做好了,接下来我们应该在界面创建中实现这些准备工作,捋一捋实现过程。
实现之前要把数据先准备好,所以我们把涉及到初始化数据的工作都放在前面执行,数据的初始化,我们都放到onActivityCreated中执行,数据初始化的步骤有以下几个:
1)容器初始化数据
2)取控件(很重要,如果没有先拿到控件,即使界面出来了,demo不知道你要对哪个控件进行操作、进行监听,对应的事件也就不会执行)
3)设置适配器(设置适配器之所以放后面,是因为容器没有初始化之前,容器中没有数据,而适配器有使用到容器中的数据,所以先后关系就出来了)
4)初始化界面
在这里插入图片描述

3.4 页面监听

当数据初始化之后,我们还缺少什么?此时界面已经到了我们需要的界面,但是如果我们此时点击,会发现按键并不会发生对应的页面替换事件,所以我们缺少的是页面监听事件。
页面监听有两个部分,一是对RadioGroup的监听,按键后跳转到对应界面,用到了setCurrentItem方法,后面的参数Boolean类型是用来控制跳转速度快慢的,false跳转流畅,true跳转缓慢。二是对ViewPager的监听,当页面状态发生变化时,根据接收到的页面位置来添加数据(即添加标签)。在这里插入图片描述在这里插入图片描述

四、小结

在这中间出现的错误:
1)容器的初始化,一开始没有注意容器与数组的不同,直接使用新建数组的方式新建容器,结果给后面的调试造成了不小的麻烦;
2)适配器中,由于前面标签类没有将参数传递过来,导致子类中没有这个参数,所以一开始,适配器的编写也造成了我很大的困扰;
3)准备工作中,先是没有弄清楚顺序,然后是取控件这一关键步骤没有做,导致后面一直提示我找不到控件,demo运行一直出错;
4)页面监听中,跳转界面方法setCurrentItem都不知道,还有ViewPager的监听事件中,当页面被选中时,要给它添加数据,逻辑混乱啊。
在底部导航栏这块走了很多弯路,也有很多错误,称得上是一个小坎了,一开始,布局都写错了地方,第三部分的fragment在我第一次尝试时根本就没有用上,并且要实现的方法都在主界面SlideActivity中编写并实现,犯的错误比较多。当然,也不能因此就心生胆怯,有错误是好事,人非圣贤孰能无过。有错误就说明还没有学到位,知识储量还不够。加油吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值