效果:


1.在xml中加入BottomNavigationView

 <com.google.android.material.bottomnavigation.BottomNavigationViewandroid:id="@+id/nav_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"app:itemTextColor="@drawable/item"app:itemIconTint="@drawable/item"app:menu="@menu/bottom_nav_menu"/>

menu:指向菜单文件。设置我们的图标和对应的标题(图标上阿里巴巴矢量图标库找的)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/navigation_home"android:icon="@mipmap/h"android:title="首页" /><itemandroid:id="@+id/navigation_shopping"android:icon="@mipmap/ss"android:title="商城" /><itemandroid:id="@+id/navigation_shopping_car"android:icon="@mipmap/s"android:title="购物车" /><itemandroid:id="@+id/navigation_me"android:icon="@mipmap/m"android:title="我的" /></menu>

itemTextColor:指向drawable文件,设置菜单选中和未选中的字体颜色
itemIconTint:指向drawable文件,设置菜单选中和未选中的图标颜色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:color="@color/colorAccent"/><item android:state_checked="false" android:color="@color/colorPrimary"/>
</selector>

2.在activity中对BottomNavigationView的点击事件进行监听:


public class Main5Activity extends AppCompatActivity {@SuppressLint("WrongConstant")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main5);BottomNavigationView navView = findViewById(R.id.nav_view);//tab超过3设置,否则未选中的菜单看不见文字。>= 28可以使用这个方法解决navView.setLabelVisibilityMode(1);//BottomNavigationView设置监听,返回true点击才会有效果navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {switch (menuItem.getItemId()) {case R.id.navigation_home:Toast.makeText(Main5Activity.this, "首页", Toast.LENGTH_SHORT).show();break;case R.id.navigation_shopping:Toast.makeText(Main5Activity.this, "商城", Toast.LENGTH_SHORT).show();break;case R.id.navigation_shopping_car:Toast.makeText(Main5Activity.this, "购物车", Toast.LENGTH_SHORT).show();break;case R.id.navigation_me:Toast.makeText(Main5Activity.this, "我的", Toast.LENGTH_SHORT).show();break;}return true;}});}}

我们可以在点击事件回调的方法中做好多事情,比如切换隐藏Fragment等操作。
BottomNavigationView 用起来还是有蛮多问题的,比如tab超过3个就会出现未选择的菜单文字看不见等。网上一搜就可以看到好多解决方案。

android开发:BottomNavigationView仿今日头条底部菜单栏相关推荐

  1. [Android] Android 手机下 仿 今日头条 新闻客户端

    利用一个月的时间,自学了 Android 开发 ,为了检验学习成果,特意 开发了这个  仿 今日头条 新闻客户端 AppNews 包括图文新闻+视频新闻+图片新闻 预览演示如下: 功能说明: 1)底部 ...

  2. Android 毕业设计 - 高仿今日头条新闻客户端(内附源码)

    源码下载地址:https://download.csdn.net/download/gdutxiaoxu/87406704 背景 一直都想尝试开发自己还没接触过的某类APP,以前刚入门的时候,就有一个 ...

  3. 今日头条android自适应,Android应用中仿今日头条App制作ViewPager指示器

    一.概述顶部ViewPager指示器的字体变色,该效果图是这样的: 大概是今天头条的app,神奇的地方就在于,切换ViewPager页面的时候,顶部指示器改成了字体颜色的变化,个人觉得还是不错的. 那 ...

  4. Android 频道管理仿今日头条

    导入依赖 在项目的build.gradle导入 allprojects {repositories {jcenter() //下面这一行就是 maven { url "https://jit ...

  5. android 横向滚动 导航,仿今日头条横向滚动导航栏--原生js

    咳咳!先打一波小广告,在上一篇里忘记了,那啥--我的那个个人博客做好了-->(我的博客) 好嘞,言归正传,说说我们的效果. 其实就是实现横向滑动,进行选择. 原理: 鼠标按下,获取当前鼠标坐标, ...

  6. Android仿今日头条首页的顶部标签栏和底部导航栏

    Android仿今日头条首页的顶部标签栏和底部导航栏 先是底部导航栏TextView+ImageView+Fragment: 效果图: activity_main.xml布局: <?xml ve ...

  7. android 上下滚动文字_android高仿今日头条富文本编辑(发布文章)

    前言 在经历了几个月的项目期限.我们遇到了前端发布文章,要用到富文本编辑的功能.在一番衡量下最终用到了[richeditor-android](https://github.com/wasabeef/ ...

  8. android 仿写开发者头条,android高仿今日头条富文本编辑(发布文章)

    前言: 在经历了几个月的项目期限.我们遇到了前端发布文章,要用到富文本编辑的功能.在一番衡量下最终用到了richeditor-android第三方框架.实现原理就是通过webView和js实现前端富文 ...

  9. Android 仿今日头条频道管理(下)(GridView之间Item的移动和拖拽)

    前言 上篇博客我们说到了今日头条频道管理的操作交互体验,我也介绍了2个GridView之间Item的相互移动.详情请參考:Android 仿今日头条频道管理(上)(GridView之间Item的移动和 ...

最新文章

  1. python如何将列表,字典,元组,集合首字母变成大写 以及其他的大小写转换!
  2. NFS的access denied
  3. python跳出双层for循环的解决方法
  4. 安装onlyoffice document server
  5. Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息
  6. 远程图片保存到服务器 php,保存远程图片到本地服务器几种方法[php,asp]网
  7. python有趣函数_python中有趣的函数
  8. 结构与算法(05):二叉树与多叉树
  9. How to create and apply a patch with Git
  10. Ubuntu下使用UFW配置防火墙(简化iptables的操作)
  11. 如何在Python中获取当前时间
  12. java 多线程编程指南 pdf_Java-多线程编程
  13. 7 大版块 | 全面解读与认知支付系统
  14. Fiddler工具的使用与手机app数据抓包
  15. tsplay 打流,EasyICE测试
  16. oppo9s刷机教程_OPPOR9S海外版官方固件刷机教程_线刷|救砖教程图解
  17. 当我们在浏览器地址栏中输入一个网址会发生什么
  18. LeetCode 1818、绝对差值和
  19. 计算机网络的三个基本拓扑结构类型,计算机网络拓扑结构的分类
  20. Python中IO编程-文件读写

热门文章

  1. python代码画简单动物_Python代码简化
  2. Docker部署ES(elasticsearch)+Kibana
  3. 你熟悉这些计算机软件吗英文,学习APP推荐|这些软件你真的都了解吗
  4. 【基础篇】-产品思考思维框架
  5. Wine开发系列之——入门
  6. 跟老齐学python从入门到精通mobi_《跟老齐学Python:从入门到精通》齐伟(编著)epub+mobi+azw3...
  7. lower_bound用法
  8. Abb机器人看门狗_人类大战机器人 《看门狗2》1.15版本内容公布
  9. 【学习笔记】GPS原理与数据处理(静态定位模糊度的固定)
  10. 测试网易软件的word,Office Word 桌面版开始测试微软编辑器:检查你的拼写和语法...