一个增强BottomNavigationView的安卓库。

  • 项目地址: https://github.com/ittianyu/BottomNavigationViewEx
  • 类别: 视图布局 (View Layout)
  • 打分: ★★★★★
  • 更新: 2017-07-29 09:08
  • 大小: 819 kb
  • 开发环境: Android Studio
  • 浏览: 415 次
  • 下载: 13 次

ittianyu / BottomNavigationViewEx

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

介绍:

一个增强BottomNavigationView的安卓库。

运行效果:

使用说明:

With ViewPager

Add ViewBadger

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.     android:id="@+id/bnve"
  2.     android:layout_width="match_parent"
  3.     android:layout_height="wrap_content"
  4.     android:layout_alignParentBottom="true"
  5.     android:background="@color/colorPrimary"
  6.     app:itemIconTint="@color/selector_item_color"
  7.     app:itemTextColor="@color/selector_item_color"
  8.     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 绑定,当 任何一个选中项改变时,都会自动改变另一项。

你可能感兴趣的:(Android)