IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android ------ Android X 的BottomNavigationView底部导航栏 -> 正文阅读

[移动开发]Android ------ Android X 的BottomNavigationView底部导航栏

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

这个Android 的底部导航栏 BottomNavigationView由Google官方推荐的,

先来看看案例效果图

打入依赖:

implementation "com.google.android.material:material:1.0.0"

布局:

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        app:labelVisibilityMode="labeled"
        app:menu="@menu/main_bnv" />

app:menu :引用菜单布局

代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:showIn="bottom_navigation_view">
    <item
        android:id="@+id/menu_mail"
        android:icon="@drawable/ic_bottom_mail"
        android:title="@string/book_mail"
        />
    <item
        android:id="@+id/menu_bookshelf"
        android:icon="@drawable/ic_bottom_books"
        android:title="@string/book_shelf" />
    <item
        android:id="@+id/menu_my_config"
        android:icon="@drawable/ic_bottom_person"
        android:title="@string/my" />
</menu>

icon的值:(选中和未选中设置的图标)

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_bottom_mail_e" android:state_checked="false" />
    <item android:drawable="@drawable/ic_bottom_mail_s" android:state_checked="true" />
</selector>

点击事件之后走的方法

navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull @NotNull MenuItem menuItem) {
                if (menuItem.getItemId() == R.id.menu_mail){
                    viewpager2.setCurrentItem(0);
                }else if (menuItem.getItemId() == R.id.menu_bookshelf){
                    viewpager2.setCurrentItem(1);
                }else if (menuItem.getItemId() == R.id.menu_my_config){
                    viewpager2.setCurrentItem(2);
                }
                return false;
            }
        });

默认选中的话字体会变大

效果图:

那么如何让它不变呢? 则需要设置这两个属性

  app:itemTextAppearanceActive="@style/bottom_selected_text"
  app:itemTextAppearanceInactive="@style/bottom_normal_text"

xml


    <!--未选中的样式-->
    <style name="bottom_normal_text">
        <item name="android:textColor">#222222</item>
        <item name="android:textSize">12sp</item>
    </style>
    <!--选中的样式-->
    <style name="bottom_selected_text">
        <item name="android:textColor">@color/colorPrimaryDark</item>
        <item name="android:textSize">12sp</item>
    </style>

这样就设置底部的选中和未选中的字体样式了,字体颜色也可以选择相应的来设置了

还有一个属性,选中的tab不要让图标变大

app:labelVisibilityMode="labeled"

看法发现了一个东西,点击的时候背景有一个水波纹动画,如何去除这个动画呢?

app:itemBackground="@null"

这样就ok了

点击响应的方法

 navigation.setOnNavigationItemSelectedListener(new 
    BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull @NotNull 
                MenuItem menuItem) {
                
                return false;
            }
        });

完整的布局

 <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        app:labelVisibilityMode="labeled"
        app:itemTextAppearanceActive="@style/bottom_selected_text"
        app:itemTextAppearanceInactive="@style/bottom_normal_text"
        app:itemBackground="@null"
        app:menu="@menu/main_bnv" />

下一篇博客说说: BottomNavigationView与ViewPager1+ViewPager2的使用

官方文档:

BottomNavigationView ?|? Android Developers

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:06:28  更:2021-10-17 12:09:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:28:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码