BottomNavigationView 很早之前就在 Material Design 中出现了,但是直到 Android Support Library 25 中才增加了 BottomNavigationView 控件。也就是说如果使用官方的BottomNavigationView控件必须让targetSdkVersion >= 25,这样才能引入25版本以上的兼容包。

接下来我们来看看如何使用BottomNavigationView。

使用BottomNavigationView 需要添加design兼容包的依赖。

dependencies {//...compile 'com.android.support:design:25.1.0'
}

在 res/menu/ 目录下创建一个 xml 文件(没有该目录则手动创建一个),我将其命名为 navigation.xml,里面使用的图片资源都是系统自带的。这个文件是用来定义导航条目具体的信息。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"><item
        android:id="@+id/call"android:icon="@android:drawable/ic_menu_call"android:title="call" /><item
        android:id="@+id/message"android:icon="@android:drawable/ic_dialog_email"android:title="message" /><item
        android:id="@+id/search"android:icon="@android:drawable/ic_menu_search"android:title="搜索" /><item
        android:id="@+id/delete"android:icon="@android:drawable/ic_menu_delete"android:title="删除"/>
</menu>

每个item表示底部导航的一个条目,icon是图标,title是文字。
然后修改Activity布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_bottom_navigation_view"android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"><TextView
        android:id="@+id/tv_content"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="演示内容"android:textSize="36sp"/><android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"app:itemBackground="@android:color/black"app:itemIconTint="@android:color/white"app:itemTextColor="@android:color/white"app:menu="@menu/navigation"/>
</RelativeLayout>

BottomNavigationView有几个特殊的属性,
* itemtBackground 条目背景
* itemIcoTint 图标渲染的颜色
* itemtTextColor 文字的颜色
* menu 关联上面创建的菜单

最后修改BottomNavigationViewActivity代码

public class BottomNavigationViewActivity extends AppCompatActivity {private TextView textView;private BottomNavigationView navigationView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_bottom_navigation_view);textView = (TextView) findViewById(R.id.text);navigationView = (BottomNavigationView) findViewById(R.id.navigation);//选中条目的监听事件navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem item) {textView.setText(item.getTitle().toString());return true;}});}
}

注意事项
* 底部导航栏默认高度是56dp
* 菜单建议是3-5个

运行结果:

更多精彩请关注微信公众账号likeDev

BottomNavigationView(底部导航)相关推荐

  1. Android ------ Android X 的BottomNavigationView底部导航栏

    有小伙伴问到我BottomNavigationView底部导航的问题,分享一下,底部导航栏的使用比较常见,目前常用的APP几乎都是使用底部导航栏将内容分类. 这个Android 的底部导航栏 Bott ...

  2. 简书 android底部导航,Android BottomNavigationView底部导航栏的使用

    基础使用 先导入依赖(这里以AndroidX为例) implementation 'com.google.android.material:material:1.0.0' 在布局中使用 android ...

  3. BottomNavigationView+ViewPager+Fragment仿微信底部导航栏

    目标: 要实现的界面如下: 此时,我们需要采用BottomNavigationView+ViewPager+Fragment,一点点的说起.首先要在app/build.gradle里添加: imple ...

  4. Android Navigation与BottomNavigationView实现底部导航栏

    底部导航栏 一.效果图 二.实现 1.创建Fragment以及布局文件 2.添加FragmentContainerView和BottomNavigationView两个控件 3.配置xml资源文件 4 ...

  5. php点击切换图片的底部导航,如何优雅地使用BottomNavigationView实现底部导航栏+fragment切换效果...

    BottomNavigationView.jpeg 引言 之前总是使用RadioButton+ViewPager来实现底部导航栏+fragment切换效果,总是繁琐地还需要写ViewPager的适配器 ...

  6. 【Android】底部导航栏【BottomNavigationView】+【ViewPage2】

    问题需求 实现底部导航栏切换 问题解决 最简单的实现方式就是使用系统自动生成的模板页面,但是有时候会有一些问题,特别是需要去除[ActionBar]的情况下,这种情况下使用系统的模板页面就不好用了,此 ...

  7. BottomNavigationView+Navigation 添加底部导航菜单切换时的fragment过渡动画animation

    Navigation默认的透明度动画,只有300毫秒,通过BottomNavigationView切换fragment时,几乎看不到过渡动画的效果,开始还以为没有动画. 开始在网上查找相关资料,最后找 ...

  8. 3分钟教你实现仿微信底部导航栏效果(BottomNavigationView + ViewPager)

    文章目录 实现效果图 前言 XML布局 menu文件 ViewPager的使用 PagerAdapter(Java) Activity中实现 上下联动 侧滑带动按钮选择 点击底部按钮带动页面 自定义选 ...

  9. android 流行布局,Android流行UI布局——底部导航(BottomNavigationView+ViewPager+Fragment)...

    前言: Android端采用底部导航栏的APP非常多,比如微信.微博.支付宝...等等,这也不能说是盲目学习iOS,毕竟好东西大家都可以用,各家操作系统也都在博采众长,互相学习.Android端的底部 ...

最新文章

  1. 商品和服务税收分类编码导出_谨慎选择加拿大商标的商品和服务分类!否则支付额外费用...
  2. 《TensorFlow 机器学习方案手册》(附 pdf 和完整代码)
  3. probable oracle net,ORA-28547: connection to server failed, probable Oracle Net admin error
  4. flink physical partition
  5. 大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener
  6. Node.js Express 应用启用资源压缩功能 - compression 库的应用
  7. 某企业管理软件开发公司校园招聘的小组讨论面试题
  8. Hibernate视频学习笔记(3)常用映射标签及属性
  9. BZOJ4205卡牌配对——最大流+建图优化
  10. 2G,3G ,4G 到 5G 变了什么 ?
  11. python如何做接口测试_python实现接口测试
  12. 搜索场景下的智能实体推荐
  13. scala函数式编程
  14. 2015百度之星资格赛.1004放盘子(数学推导)
  15. e服务器系统可以用PE来装吗,U盘安装系统有哪些方式可以启动WinPE
  16. chrome保存网页为图片
  17. 鸡兔同笼头吃20脚56c语言,鸡兔同笼问题练习题答案.doc
  18. 电脑无法设置默认打开方式的解决办法
  19. IOS实现SpotLight搜索 让你的APP支持SpotLight搜索
  20. 张一鸣:年轻人一定要懂得延迟满足

热门文章

  1. USACO2011Open Silver Running Laps题解
  2. 千斤顶装配图怎么画_工程制图习题集千斤顶装配图
  3. leetcode 2022.04.10 招商银行专场竞赛 D.商店促销活动(dp)
  4. 用这个公式编辑器可以打出标准的绝对值公式
  5. Mac OS X: 如何拆分一个DMG文件(Split/Segmnt DMG file)
  6. BC1.2和QC2.0充电器识别过程
  7. 场景文本识别—Mask TextSpotter v1 v2 v3
  8. Sentence-BERT论文阅读笔记
  9. 有穷自动机 DFA(确定)和NFA(不确定)
  10. turtle绘画-移动落笔点(改变初始原点)