一个增强BottomNavigationView的安卓库。

An android lib for enhancing BottomNavigationView. 一个增强BottomNavigationView的安卓库。

介绍:

一个增强BottomNavigationView的安卓库。

运行效果:

使用说明:

Untitled.gif

Untitled.gif

With ViewPager

with_view_pager.gif

Add ViewBadger

view_badger.gif

Sdk Version

    
    
  1. compileSdkVersion >= 25

导入本库

Gradle例子:

步骤 1. 在工程根目录的 build.gradle 最后添加如下代码:

    
    
  1. allprojects {
  2.     repositories {
  3.         ...
  4.         maven { url "https://jitpack.io" }
  5.     }
  6. }

步骤 2. 添加依赖

    
    
  1. compile 'com.github.ittianyu:BottomNavigationViewEx:1.2.2'
手动导入:

下载文件 BottomNavigationViewEx.java 并复制到你的工程中。

开始使用

在 xml 布局中添加自定义控件:

    
    
  1. <com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
  2.     android:id="@+id/bnve"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="wrap_content"
  5.     android:layout_alignParentBottom="true"
  6.     android:background="@color/colorPrimary"
  7.     app:itemIconTint="@color/selector_item_color"
  8.     app:itemTextColor="@color/selector_item_color"
  9.     app:menu="@menu/menu_navigation_with_view_pager" />

在 Activity 中绑定控件:

    
    
  1. BottomNavigationViewEx bnve = (BottomNavigationViewEx) findViewById(R.id.bnve);
禁止所有动画效果
    
    
  1. bnve.enableAnimation(false);
  2. bnve.enableShiftingMode(false);
  3. bnve.enableItemShiftingMode(false);
自定义图标和文本大小
    
    
  1. bnve.setIconSize(widthDp, heightDp);
  2. bnve.setTextSize(sp);
和 ViewPager 绑定####
    
    
  1. // set adapter
  2. adapter = new VpAdapter(getSupportFragmentManager(), fragments);
  3. bind.vp.setAdapter(adapter);
  4.  
  5. // binding with ViewPager
  6. bind.bnve.setupWithViewPager(bind.vp);
添加带数字的小红点

Gradle 中加入 badge 库的依赖

    
    
  1. compile 'q.rorbin:badgeview:1.1.0'

和底部控件绑定

    
    
  1. // add badge
  2. addBadgeAt(2, 1);
  3.  
  4. private Badge addBadgeAt(int position, int number) {
  5.     // add badge
  6.     return new QBadgeView(this)
  7.             .setBadgeNumber(number)
  8.             .setGravityOffset(12, 2, true)
  9.             .bindTarget(bind.bnve.getBottomNavigationItemView(position))
  10.             .setOnDragStateChangedListener(new Badge.OnDragStateChangedListener() {
  11.                 @Override
  12.                 public void onDragStateChanged(int dragState, Badge badge, View targetView) {
  13.                     if (Badge.OnDragStateChangedListener.STATE_SUCCEED == dragState)
  14.                         Toast.makeText(BadgeViewActivity.this, R.string.tips_badge_removed, Toast.LENGTH_SHORT).show();
  15.                 }
  16.             });
  17. }

功能

methods description
enableAnimation 开启或关闭点击动画(文字放大效果和图片移动效果)。 默认为 true.
enableItemShiftingMode 开始或关闭子菜单位移模式。 如果为 true,除了当前选中项,其他项的文本将会隐藏。 当菜单数大于3时,默认为 true。
enableShiftingMode 开始或关闭导航条位移模式。如果为 true,选中项和其他项的宽度不一样。当菜单数大于3时,默认为 true。
getBottomNavigationItemView 获取位于 position 的私有成员变量 mButton。
getBottomNavigationItemViews 获取私有成员变量 mButtons。
getCurrentItem 获取当前选中项的索引。
getIconAt 获取位于 position 的图片。
getItemCount 获取子项个数。
getItemHeight 获取菜单高度。
getLargeLabelAt 获取位于 position 的大标签. 每个子项包含两个标签,一个大的,一个小的。
getSmallLabelAt 获取位于 position 的小标签. 每个子项包含两个标签,一个大的,一个小的。
getMenuItemPosition 获取子菜单的索引。如果找不到,返回 -1。
getOnNavigationItemSelectedListener 获取 OnNavigationItemSelectedListener。
setCurrentItem 设置当前选中项。
setIconMarginTop 设置 icon 的 MarginTop,用于调节图标垂直位置。
setIconSize 设置所有的子项图标大小。
setIconSizeAt 设置位于 position 的图标的大小。
setIconsMarginTop 设置所有 icon 的 MarginTop,用于调节图标垂直位置。
setIconTintList 设置图片的渲染颜色列表(Selector)
setIconVisibility 设置图片可见性。
setItemBackground 设置子项的背景。
setItemHeight 设置子项高度。
setLargeTextSize 设置所有子项的大标签文本大小。每个子项有两个标签,一个大的,一个小的。当子项未选中时,显示小标签;选中时,显示大标签。
setSmallTextSize 设置所有子项的小标签文本大小。每个子项有两个标签,一个大的,一个小的。当子项未选中时,显示小标签;选中时,显示大标签。
setTextSize 设置所有子项的大和小标签文本大小。
setTextTintList 设置子项 TextView 的颜色。
setTextVisibility 设置文本可见性。
setTypeface 设置所有子项的 TextView 字体
setupWithViewPager 和 ViewPager 绑定,当 任何一个选中项改变时,都会自动改变另一项。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值