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. linux打理ftp用户,Linux中如何添加/删除FTP用户并设置权限
  2. Mistakes(Updating)
  3. WebLogic中文博客
  4. android默认获取敏感权限
  5. 角谷定理python输出变化过程,Python 100例——第十章----定理与猜想
  6. 链式栈的实现(头文件及源程序)
  7. java 循环笔记_Java笔记之嵌套循环1
  8. angular5使用httpclient时解决跨域问题
  9. 美国数字货币牌照BitLicence中文版(全文翻译)
  10. windows 花式装系统
  11. 新建一个grub软盘镜像
  12. Oracle查看表空间使用率及爆满解决方案
  13. 【Autoware自动驾驶-开源项目实践】大家快来入门体验啦
  14. select设置默认的option
  15. ASP.NET中EnableViewState
  16. 中国移动光猫获取超级密码教程
  17. java方法的重写和重载_Java方法重载和重写原理区别解析
  18. 2015年7月深圳社保缴费基数费率表
  19. 阿里云服务器购买及使用流程(新手入门图文教程)
  20. [墨者学院] Windows硬盘文件分析取证(新建的用户名)

热门文章

  1. 根据两个坐标系对应点计算转换关系(旋转和平移)
  2. 国内云服务器怎么选配置?如何低价购买国内云主机?
  3. 树形结构(Python)
  4. PTA 旅游规划(25 分)(图论, dijstra 变形)
  5. C语言实现通讯录(静态版本+动态版本)
  6. python将数据逐行写入excel_使用python将数据写入excel
  7. Android 天气APP(二十三)增加灾害预警、优化主页面UI
  8. mysql 拼音排序_MySQL按常规排序、自定义排序和按中文拼音字母排序的方法
  9. clamav Java_Centos7 安装clamav杀毒
  10. Robotics: Computational Motion Planning(路径规划)笔记(一):基于图搜索的方法-Grassfire、Dijkstra和A*算法