美文网首页
2018-05-10BottomNavigationBar实现底

2018-05-10BottomNavigationBar实现底

作者: KryNa | 来源:发表于2018-05-10 16:03 被阅读0次

    之前我是使用的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()

    最后设置监听事件:

    相关文章

      网友评论

          本文标题:2018-05-10BottomNavigationBar实现底

          本文链接:https://www.haomeiwen.com/subject/ygazrftx.html