BottomNavigationView的安卓库

来源:互联网 发布:windows 集群文件系统 编辑:程序博客网 时间:2024/05/21 19:21
一个增强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. }

功能

methodsdescriptionenableAnimation开启或关闭点击动画(文字放大效果和图片移动效果)。 默认为 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 绑定,当 任何一个选中项改变时,都会自动改变另一项。
  • https://github.com/ittianyu/BottomNavigationViewEx

原创粉丝点击