BottomNavigationBar+viewPager实现可滑动的底部导航栏_GuldanHu的博客-程序员宝宝

技术标签: 2018  BottomNavigationBar  底部导航  Android  

1.首先要在grade里依赖下
com.ashokvarma.android:bottom-navigation-bar:2.0.4
2.在布局文件里使用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="@dimen/px_1"
        android:background="@color/tab_text_default"
        />

    <com.ashokvarma.bottomnavigation.BottomNavigationBar
        android:id="@+id/bottom_navigation_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:bnbBackgroundColor="@color/bg_gray"
        />
</LinearLayout>

3.对bottomNavigationBar的一些设置

 mBottomNavigationBar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar);
        mBottomNavigationBar.setTabSelectedListener(this);
        //设置监听
        mBottomNavigationBar.clearAll();
        mBottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
        //还用一种mode是Shifting,大家可以自己试下有何区别
        mBottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
        mBottomNavigationBar
                .addItem(new BottomNavigationItem(R.mipmap.icon_home_on, getString(R.string.text_main_tab_home))
                        .setInactiveIconResource(R.mipmap.icon_home_off)
                        .setActiveColorResource(R.color.tab_text_selected)
                        .setInActiveColorResource(R.color.tab_text_default))
//                        .setBadgeItem(badgeItem))
                .addItem(new BottomNavigationItem(R.mipmap.icon_record_on, getString(R.string.text_main_tab_record))
                        .setInactiveIconResource(R.mipmap.icon_record_off)
                        .setActiveColorResource(R.color.tab_text_selected)
                        .setInActiveColorResource(R.color.tab_text_default))
                        //配置图片文字及选中时的颜色
                .setFirstSelectedPosition(0)    //默认位置就是0
                .initialise();//初始化

4.初始化viewPager

private void initViewPager() {
        mViewPager = (ViewPager) findViewById(R.id.view_pager);

        mFragments = new ArrayList<>();
        mFragments.add(MainFragmentOne.newInstance());
        mFragments.add(MainFragmentTwo.newInstance());

        mViewPager.setAdapter(new SectionsPagerAdapter(getSupportFragmentManager(), mFragments));
        mViewPager.addOnPageChangeListener(this);
        mViewPager.setCurrentItem(0);
    }
 class SectionsPagerAdapter extends FragmentPagerAdapter {
    
        List<Fragment> fragments;

        public SectionsPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
            super(fm);
            this.fragments = fragments;
        }

        @Override
        public Fragment getItem(int position) {
            return fragments.get(position);
        }

        @Override
        public int getCount() {
            return fragments.size();
        }
    }

5.切换或滑动时设置参数

 @Override
    public void onTabSelected(int position) {
        mViewPager.setCurrentItem(position);
    }

 @Override
    public void onPageSelected(int position) {
        mBottomNavigationBar.selectTab(position);
    }

这些弄完功能就实现了,图就不贴了

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/GuldanHu/article/details/81738891

智能推荐

Uber Thomas 论文整理_zhaoyuyu_nudt的博客-程序员宝宝

Thomas MiconiWorkingNeural networks with differentiable structure虽然梯度下降在学习神经网络的连接权值方面已经被证明是非常成功的,但是这些网络的实际结构通常是由人工或其他优化算法来确定的。这里我们描述了一个简单的方法,使网络结构可微,从而可以得到梯度下降。我们在应用于简单序列预测问题的递归神经网络上测试了这种方法。从只包含一个节点的初始网络开始,该方法自动构建成功解决任务的网络。最终网络中的节点数与任务难度有关。该方法可以动态地增加网络规

一文看懂神经网络工作原理_计算机中的神经网络_chvalrous的博客-程序员宝宝

本文转载自:http://www.tuicool.com/articles/ZzuQnmI现在谈人工智能已经绕不开“神经网络”这个词了。人造神经网络粗线条地模拟人脑,使得计算机能够从数据中学习。机器学习这一强大的分支结束了 AI 的寒冬,迎来了人工智能的新时代。简而言之,神经网络可能是今天最具有根本颠覆性的技术。看完这篇神经网络的指南,你也可以和别人聊聊深度学习了。为此

DP_背包问题为啥逆向枚举[email protected]的博客-程序员宝宝

滚动数组1.如果是左上推右下则为了防止这一层的dp覆盖掉上一层的dp必须逆着遍历eg.f[i][j]=f[i-1][j-len[i]]-&gt;dp[j]=dp[j-len[i]] (j:1-&gt;n)

c++ Simpson积分_清花可听的博客-程序员宝宝

c++ Simpson积分//// main.cpp// 5.14 01//// Created by Shatong on 2020/5/14.// Copyright 2020 Shatong. All rights reserved.//#include &lt;iostream&gt;#include &lt;iomanip&gt;#include &lt;cmath&gt;using namespace std;class Base{public:

Android webView加载失败显示自己的view或者加载URl (仿微信webView加载进度条)_小胖胖哈的博客-程序员宝宝

webView加载失败显示的ViewwebView.setWebViewClient(new WebViewClient() { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override public void onReceivedHttpError(WebView view, WebResourceRequ...

websocket进行Authorization验证_websocket设置authorization_SmallGirlYang的博客-程序员宝宝

websocket进行Authorization验证在网上找了各种方法尝试去在websocket进行连接之前添加请求头无果后,找到一种方法,亲测有效。var ws = new WebSocket("ws://username:[email protected]")在new websocket()时已经创建了连接,暂未找到添加请求头的方法。补充:在接口未加Authorization验证时,进行用户认证可以在open之后使用send方法进行验证,若不正确则关闭连接。...

随便推点

机器学习知识点(二十一)特征选择之岭回归和LASSO_fjssharpsword的博客-程序员宝宝

特征选择,也就是特征缩减,是通过对损失函数(即优化目标)加入惩罚项,使得训练求解参数过程中会考虑到系数的大小,通过设置缩减系数(惩罚系数),会使得影响较小的特征的系数衰减到0,只保留重要的特征。嵌入式特征选择方法有:LASSO(L1正则化)和岭回归(L2正则化)。特征选择,可消除噪声特征和消除关联的特征,并能减少训练开销。对于特征选择,需要关注正则化概念,正则化是对损失函数(目标函数)加入一个

Chrome 插件之 计算器插件小工具_zxc_user的博客-程序员宝宝

如果不明白文件代表的意思,可以先看看我的另一篇博客总的架构http://blog.csdn.net/zxc_user/article/details/77369047manifest.json{"manifest_version":2,"name":"zxc-chrome","description":"my first chro

python将多个列表合并_Python中多个列表与字典的合并方法_weixin_39580727的博客-程序员宝宝

Python中多个列表与字典的合并方法1多列表的合并1)a+=ba=['','','']b = ['','','']a += bprint(a)>>>['','','','','','']2) a.extend(b)a=['','','']b = ['','','']a.extend(b)print(a)>>>['1','2','3','22','55','66']3) a[0:0] = b切片的...

【springboot 入门篇】第2篇 springboot的各种配置_Hoshea_Chx的博客-程序员宝宝

1. 配置文件简介spring boot使用一个全局配置文件:application.properties或者application.yml,放置在src/main/resources目录下或者类路径的/config目录下。application.properties是我们熟知的键值对配置文件: application.yml是yaml语言的配置文件,yaml是一种以数据为中心的语言,在配置数

扩展欧几里得--让你一次刷个够_weixin_30843605的博客-程序员宝宝

在开始刷题之前先让我介绍一下欧几里得和扩展欧几里得。先介绍什么叫做欧几里德算法 有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做? 欧几里德有个十分又用的定理: gcd(a, b) = gcd(b , a%b) ,这样,我们就可以在几乎是 log 的时间复杂度里求解出来 a ...

android开发:kotlin入门(五):接口_可乐猫哈的博客-程序员宝宝

接口是使用interface关键字来定义的。 例如:interface MyInterface { var name:String; var age: Int get() = 20 set(value) = TODO() fun getName() fun doAction(){ println("MyInte...

推荐文章

热门文章

相关标签