当前位置: 首页 > news >正文

『Android基础入门』ViewPager+Fragment+BottomNavigationView实现底部导航

👨‍🎓作者简介:一位喜欢写作,计科专业大三菜鸟

🏡个人主页:starry陆离

如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦

ViewPager+Fragment+BottomNavigationView实现底部导航

  • 1.准备工作:创建布局并设置底部菜单
    • 创建menu文件
    • 创建selector文件
  • 2.初始化控件
  • 3.创建FragmentPagerAdapter
  • 4.初始化数据,绑定Adapter和ViewPager
  • 5.viewpager事件监听
  • 6.BottomNavigationView的事件监听
  • 7.创建Badge
  • 8.参考资料
  • 9.效果展示
  • 10.Gitee源码

在ViewPager与Fragment结合实现多页面滑动的学习上再进一步,记录一下ViewPager+Fragment+BottomNavigationView实现底部导航

  • 1.复习ViewPager的用法
  • 2.复习FragmentPagerAdapter的使用
  • 3.BottomNavigationView的使用
  • 4.ViewPager切换页面与BottomNavigationView的联动
  • 5.Badge(新消息提示,图标右上角红圈)

1.准备工作:创建布局并设置底部菜单

注意是这个控件,有好几个类似的,不要选错了

image-20220929082646786

创建menu文件

新建一个文件夹

image-20220929082839013

选择menu

image-20220929082902905

在menu下新建一个menu资源文件

image-20220929082946328

完成menu文件的新建

image-20220929083106664

创建selector文件

image-20220929083501713

名字随意,尽量规范,root element 选selector

image-20220929083542997

因为有是个导航按键所以就创建四个selector

state属性默认是false状态,所以图片资源设置成灰色。

image-20220929091040719

在menu中引入刚刚创建的selector资源

image-20220929091454024

回到xml文件中引入导航菜单

app:menu="@menu/button_nav_menu"

image-20220929091650860

通过labelVisibilityMode可以设置按钮的显示模式

image-20220929164553690

2.初始化控件

image-20220929182019904

3.创建FragmentPagerAdapter

因为ViewPager本身几乎已被弃用,所有可以看到关于viewpager的两个Adapter方法也是画上了删除线,不过还是可以使用的,不过是不推荐了。因为现在有更强大的viewpager2

image-20220929182050781

4.初始化数据,绑定Adapter和ViewPager

之前的两个Demo中已经写过两次了,不再赘述。

image-20220929182136163

5.viewpager事件监听

通过viewpager事件监听,在onPageSelected(int position)方法中控制导航栏按钮的跟随fragment的选中

image-20220929182227175

6.BottomNavigationView的事件监听

BottomNavigationView的事件监听,在setOnNavigationItemSelectedListener方法中,设置fragment跟随按钮的选中;这样我们就实现了fragment和BottomNavigationView的双向选中。

image-20220929182246872

7.创建Badge

最后我们通过Badge来设置BottomNavigationView按钮上的消息小红点

image-20220929182257187

8.参考资料

36.5-ViewPager+Fragment+bottomNavigationView实现底部导航_哔哩哔哩_bilibili

(11条消息) 底部菜单控件BottomNavigationView的使用_小凡特爱写代码的博客-CSDN博客_bottomnavigationview

(11条消息) Android:BottomNavigationView自定义选中颜色和文字_VoldemortQian的博客-CSDN博客_bottomnavigationview颜色

9.效果展示

ad02

10.Gitee源码

Android_Java_Review: 学习–代码即笔记 (gitee.com)

相关文章:

  • Regmap子系统:(寄存器映射)
  • 用通俗易懂的方式讲解:lightGBM 算法及案例(Python 代码)
  • TC8:TCP_CONTROL_FLAGS_05-08
  • 2022年华为杯研究生数学建模竞赛ABCDEF题思路资料汇总贴
  • JavaScript原生之垃圾回收原理、标记清理原理
  • python解CCF-CSP真题《202209-2 何以包邮?》
  • 【面试必刷TOP101】面试官:如何删除有序链表中重复的元素?
  • U3DVR向量点乘与叉乘概念及几何模型公式应用
  • stm32串口发送数据包进行解析,实现人机交互
  • 【Django框架】——02 Django虚拟环境搭建
  • 【从零带你玩转Linux】目录文件相关操作指令
  • k8s-资源管理
  • 版本控制工具 之 Git
  • 机器学习笔记 - 使用 Pix2Pix 进行图像翻译
  • 【一起学数据结构与算法】深度学习栈
  • (三)从jvm层面了解线程的启动和停止
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【面试系列】之二:关于js原型
  • conda常用的命令
  • CSS实用技巧
  • DataBase in Android
  • ECS应用管理最佳实践
  • emacs初体验
  • es6要点
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript设计模式与开发实践系列之策略模式
  • Java精华积累:初学者都应该搞懂的问题
  • nfs客户端进程变D,延伸linux的lock
  • npx命令介绍
  • PaddlePaddle-GitHub的正确打开姿势
  • Protobuf3语言指南
  • vue的全局变量和全局拦截请求器
  • 码农张的Bug人生 - 见面之礼
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 异常机制详解
  • - 转 Ext2.0 form使用实例
  • MyCAT水平分库
  • PostgreSQL之连接数修改
  • 阿里云ACE认证之理解CDN技术
  • ​【已解决】npm install​卡主不动的情况
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​你们这样子,耽误我的工作进度怎么办?
  • #、%和$符号在OGNL表达式中经常出现
  • #Linux(帮助手册)
  • #Linux(权限管理)
  • ( 10 )MySQL中的外键
  • (1)Android开发优化---------UI优化
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (二)Eureka服务搭建,服务注册,服务发现
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)docker:Dockerfile构建容器运行jar包
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)基于IDEA的JAVA基础10
  • .dwp和.webpart的区别