Kongzue Tabbar - 一款简单的底部导航栏组件

KongzueTabbar是一款便捷的底部导航栏组件,仅需简单配置即可实现各种导航需求,支持自动叠加颜色的TabIcon,易于上手且满足大多数导航场景。本文详细介绍其使用方法及特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kongzue Tabbar

Kongzue Tabbar是一款简单的底部导航栏组件,仅需要简单配置即可满足绝大多数需要使用导航栏的场景。

Github: github.com/kongzue/Tab…

Demo预览图如下:

优势

  • 无需两份图!每个 TabIcon 仅需一份颜色的图即可,Tabbar 会根据您设置的颜色自动叠加颜色!

  • 易于上手,快速创建,满足绝大多数导航栏使用场景。

使用方法

  1. 从 Maven 仓库或 jCenter 引入: Maven仓库:
<dependency>
  <groupId>com.kongzue.tabbar</groupId>
  <artifactId>tabbar</artifactId>
  <version>1.1</version>
  <type>pom</type>
</dependency>
复制代码

Gradle: 在dependencies{}中添加引用:

implementation 'com.kongzue.tabbar:tabbar:1.1'
复制代码
  1. 从XML布局文件创建:
<com.kongzue.tabbar.TabBarView xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/tabbar"
    android:layout_width="match_parent"
    android:layout_height="55dp"
    app:focusColor="#3e78ed"
    app:iconPadding="2dp"
    app:normalColor="#606060"
    app:textSize="12dp"
    app:tabPaddingVertical="5dp"/>
复制代码

其中各属性解释如下:

字段含义默认值
focusColor处于焦点状态的颜色#3e78ed
normalColor处于普通状态的颜色#606060
iconPadding图标内边距5dp
textSize文本字号12dp
tabPaddingVerticaltab按钮上下内边距5dp
tabClickBackgroundtab按钮按下效果ripple

也可通过set方法设置:

tabbar = findViewById(R.id.tabbar);

tabbar.setFocusColor(Color.rgb(62, 120, 238));                              //处于焦点状态的颜色
tabbar.setNormalColor(Color.rgb(96, 96, 96));                               //处于普通状态的颜色
tabbar.setTextSize(dp2px(12));                                              //文本字号
tabbar.setIconPadding(dp2px(5));                                            //图标内边距
tabbar.setTabPaddingVertical(dp2px(5));                                     //tab按钮上下内边距
tabbar.setTabClickBackground(TabBarView.TabClickBackgroundValue.RIPPLE);    //tab按钮按下效果
复制代码
  1. 创建Tab:

首先需要创建一个 List 用来存放Tab数据:

List<Tab> tabs = new ArrayList<>();
tabs.add(new Tab(this, "首页", R.mipmap.img_maintab_home));
tabs.add(new Tab(this, "联系人", R.mipmap.img_maintab_contacts));
tabs.add(new Tab(this, "我的", R.mipmap.img_maintab_me));
复制代码

然后将它们设置到 Tabbar 即可:

tabbar.setTab(tabs);
复制代码

完成!

额外的说明

  1. Tab 的创建(构造)方式

Tab 支持多种构建方式:

new Tab(this, "首页", R.mipmap.img_maintab_home)      //使用资源文件创建
new Tab("首页", bitmap);                              //使用 Bitmap 位图创建
new Tab("首页", drawable);                            //使用 drawable 创建
复制代码

Tab 亦支持 get、set 方法,可以通过他们设置属性值。

其次,关于 Tab 字段的说明:

字段含义是否必须
nameTab 标签名称
iconTab 图标
  1. 按钮点击监听

可通过以下代码设置监听

tabbar.setOnTabChangeListener(new OnTabChangeListener() {
    @Override
    public void onTabChanged(int index) {
        Log.i(">>>", "onTabChanged: " + index);
    }
})
复制代码

其中,index 即当前点击了哪个按钮的索引号。

  1. 设置默认焦点按钮:

可通过以下代码设置设置默认焦点按钮:

tabbar.setNormalFocusIndex(index);
复制代码

其中,index 即要设置为焦点的按钮的索引号。

  1. 当前提供三种 Tab 按钮按下效果:
字段含义是否默认
ripple默认矩形水波纹效果
rippleOutside外弧形水波纹效果
gray纯灰色

具体表现效果如下:

开源协议

Copyright Tabbar

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
复制代码

更新日志

v1.1:

  • 新增属性 “tabClickBackground” 控制按下的不同效果;
  • 新增部分注释;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值