2018-05-10BottomNavigationBar实现底

2018-05-10  本文已影响0人  KryNa

之前我是使用的RadioGroup与RadioButton、碎片相结合实现底部选项卡,在这里就使用BottomNavigationBar结合Fragment来实现。

1.添加依赖

compile'com.ashokvarma.android:bottom-navigation-bar:2.0.3'

2.在当前活动的xml文件中,添加BottomNavigationBar和FrameLayout来存放Fragment

activity_main.xml

2.自定义MyFragment继承Fregment (再次只展示一个,根据底部选项卡的选项个数来定义不同的Fragment)

MyFragment.class

3.在MainActivity.class中

        首先,先定义变量,其中myFragment表示当前碎片

    定义一个方法initFragment(),用于初始化碎片,以及设置默认的碎片,把第一个碎片作为第一个显示,并把第一个碎片设置为当前碎片

    定义方法chooseFragment(fragment),根据传入的碎片,首先判断是否为当前碎片,若不是,再判断该碎片是否已经被添加到了transaction,若没有被添加过,则把当前碎片隐藏,将传入的碎片添加到transaction,否则隐藏当前的碎片,直接显示传入的碎片。在最后,把传入的碎片设置为当前碎片。

    设置BottomNavigationBar的属性,其中 Mode和BackgroundStyle分别有三种,分别包含一种Default模式:

            Mode包含3种Mode:

                MODE_DEFAULT: 如果Item的个数<=3就会使用MODE_FIXED模式,否则使用MODE_SHIFTING模式

                MODE_FIXED: 填充模式,未选中的Item会显示文字,没有换挡动画。

                MODE_SHIFTING: 换挡模式,未选中的Item不会显示文字,选中的会显示文字。在切换的时候会有一个像换挡的动画

            Background Style包含3种Style:

                BACKGROUND_STYLE_DEFAULT: 默认

                BACKGROUND_STYLE_STATIC: 点击的时候没有水波纹效果

                BACKGROUND_STYLE_RIPPLE: 点击的时候有水波纹效果

                如果设置的Mode为MODE_FIXED,将使用BACKGROUND_STYLE_STATIC 。

                如果Mode为MODE_SHIFTING将使用BACKGROUND_STYLE_RIPPLE。

onCreate()

最后设置监听事件:

上一篇下一篇

猜你喜欢

热点阅读