全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android BottomNavigationView底部导航效果

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;
  @Override
  protected 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() {
          @Override
          public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            textView.setText(item.getTitle().toString());
            return true;
          }
        });
  }
}

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # BottomNavigationView  # 底部导航  # Android使用BottomNavigationBar实现底部导航栏  # Android使用BottomNavigationBar实现导航栏功能  # ANDROID BottomNavigationBar底部导航栏的实现示例  # Android BottomNavigationBar底部导航控制器使用方法详解  # Mono for Android 实现高效的导航(Effective Navigation)  # Android中的导航navigation的使用详细步骤  # 创建一个  # 都是  # 就在  # 将其  # 来看看  # 有几个  # 很早  # 命名为  # 如何使用  # 大家多多  # 出现了  # 增加了  # 中才  # 也就是说  # 系统自带  # 目录下  # 是用来  # version  # lt  # search 


相关文章: 如何在建站主机中优化服务器配置?  韩国服务器如何优化跨境访问实现高效连接?  非常酷的网站设计制作软件,酷培ai教育官方网站?  建站之星安装后界面空白如何解决?  如何确保FTP站点访问权限与数据传输安全?  专业网站建设制作报价,网页设计制作要考什么证?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  制作门户网站的参考文献在哪,小说网站怎么建立?  jQuery 常见小例汇总  如何在宝塔面板中修改默认建站目录?  建站之星后台密码如何安全设置与找回?  如何选择可靠的免备案建站服务器?  如何在阿里云通过域名搭建网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  建站之星如何实现网站加密操作?  建站主机如何安装配置?新手必看操作指南  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  定制建站流程步骤详解:一站式方案设计与开发指南  建站之星后台管理:高效配置与模板优化提升用户体验  如何通过虚拟主机快速完成网站搭建?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在IIS中配置站点IP、端口及主机头?  如何有效防御Web建站篡改攻击?  如何解决ASP生成WAP建站中文乱码问题?  如何选择网络建站服务器?高效建站必看指南  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何快速搭建高效可靠的建站解决方案?  音乐网站服务器如何优化API响应速度?  如何高效利用亚马逊云主机搭建企业网站?  如何制作网站标识牌,动态网站如何制作(教程)?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  建站之星后台管理如何实现高效配置?  网站制作服务平台,有什么网站可以发布本地服务信息?  电商网站制作价格怎么算,网上拍卖流程以及规则?  宁波免费建站如何选择可靠模板与平台?  ,柠檬视频怎样兑换vip?  建站168自助建站系统:快速模板定制与SEO优化指南  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  ,购物网站怎么盈利呢?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在橙子建站中快速调整背景颜色?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  建站主机是什么?如何选择适合的建站主机?  如何用好域名打造高点击率的自主建站?  如何挑选最适合建站的高性能VPS主机?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  已有域名如何快速搭建专属网站?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。