Android之旅

BottomNavigationView

2018-05-30  本文已影响0人  Android师哥
NightRain.png

一个底部导航栏控件,最多支持有五个快捷导航,还带有一个放大的动画,比较好用的一个控件!

效果

BottomNavigationView效果图.gif

布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--底部导航栏-->
    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemBackground="@null"
        app:itemIconTint="@color/select_color"
        app:itemTextColor="@color/select_color"
        app:menu="@menu/bottom_menu" />
    <!--分割线-->
    <View
        android:id="@+id/v_div"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_above="@id/bottom_view"
        android:background="#999999" />
    <!--Fragment-->
    <FrameLayout
        android:id="@+id/fl_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/v_div" />
</RelativeLayout>

menu文件

与导航栏的按钮一一对应

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_1"
        android:icon="@drawable/daohang_shouye"
        android:title="首页" />
    <item
        android:id="@+id/menu_2"
        android:icon="@drawable/daohang_xiaoxi"
        android:title="消息" />
    <item
        android:id="@+id/menu_3"
        android:icon="@drawable/video_pause"
        android:title="视频" />
    <item
        android:id="@+id/menu_4"
        android:icon="@drawable/daohang_wode"
        android:title="我的" />
</menu>

select_color

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#ff0000" android:state_checked="true"/>
    <item android:color="#666666" android:state_checked="false"/>
</selector>

自定义属性说明

自定义属性 说明 参数
menu 设置导航按钮 menu资源
itemIconTint 导航按钮图片着色 color资源
itemTextColor 导航按钮文字颜色 color资源
itemBackground 导航按钮背景颜色 color资源

常用方法

方法 说明
setOnNavigationItemSelectedListener 设置点击Item监听

注意

  1. menu中的item最多有五个;
  2. 如果menu中Item超过3个,需要在找到控件之后调用BottomNavigationViewHelper.initShiftMode(底部导航栏控件);
  3. 如果想取消item点击时候的背景颜色就把app:itemBackground的值设置为@null;
  4. setOnNavigationItemSelectedListener的返回值要返回true,不然没有动画效果;
上一篇下一篇

猜你喜欢

热点阅读