Android BottomNavigationView的属性设置

Posted BandaYung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android BottomNavigationView的属性设置相关的知识,希望对你有一定的参考价值。

底部导航栏通常是每个item由一个icon和title组成的,然后再控制下是否点击的状态即可。当然也可以使用官方在support包内提供的BottomNavigationView来实现,于简单的需求来说,使用BottomNavigationView来实现,还是比较方便的。

先给出两张的差别:

未设置属性:

有设置属性:

BottomNavigationView的使用方法

在layout中引用:

<android.support.design.widget.BottomNavigationView
     android:id="@+id/bnv"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@color/white"
     app:labelVisibilityMode="labeled"
     app:menu="@menu/navigation" />

1、实现tab按下的图标切换

menu文件下的navigation.xml(没有就新建)定义几个tab,如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_main_bottom_mall"
        android:icon="@mipmap/ic_launcher"
        android:title="首页" />
    <item
        android:id="@+id/menu_main_bottom_bbs"
        android:icon="@mipmap/ic_launcher"
        android:title="订货" />
    <item
        android:id="@+id/menu_main_bottom_shop_car"
        android:icon="@mipmap/ic_launcher"
        android:title="社区" />
    <item
        android:id="@+id/menu_main_bottom_me"
        android:icon="@mipmap/ic_launcher"
        android:title="个人中心" />
</menu>

这里也可以自定义tab的图标切换,在drawable下定义一个selector,然后修改icon

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

修改完成后,但是选中的图标并不符合刚刚情况,为什么?
因为这里的图标要求比较严格,必须是镂空的,不能自定义颜色.。
因为会有tint,所以所有不镂空的地方都会变成统一的tint颜色。
调用BottomNavigationView的setItemIconTintList(null) 即可解决

2、选中的tab不要让图标变大

在layout布局中设置

 app:labelVisibilityMode="labeled"

3、选中的tab字体会变大

在dimens.xml中覆盖其默认值

<dimen name="design_bottom_navigation_text_size" tools:override="true">14sp</dimen>
<dimen name="design_bottom_navigation_active_text_size" tools:override="true">14sp</dimen>

4、设置tab的字体颜色切换

其中colors数组第一个是未选色,第二个是选中色,在代码中设置如下:

 int[][] states = new int[][]
        new int[]-android.R.attr.state_checked,
        new int[]android.R.attr.state_checked
;
int[] colors = new int[]getResources().getColor(R.color.color_C3C3C3),
        getResources().getColor(R.color.colorPrimary)
;
ColorStateList csl = new ColorStateList(states, colors);
mBottomNavigationView.setItemTextColor(csl);

以上是关于Android BottomNavigationView的属性设置的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录