搜索插件、代码仓与 APP 分类

inkblob_navigation_bar 封面
插件详情v0.1.2

inkblob_navigation_bar

带有平滑且动态墨水 blob 过渡效果的自定义导航栏。

近 30 天下载
16
喜欢数
39
Pub 分数
70

安装插件

flutter pub add inkblob_navigation_bar

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个可自定义的底部导航栏,具有平滑、动态的墨水斑点过渡效果,通过流畅的视觉反馈增强用户交互体验。专为Flutter应用设计,通过发光且不断扩展的类似墨水的涟漪动画,为选中项目提供优雅的替代方案。该包轻量且易于集成,非常适合强调细微动画和精致微交互的现代UI。支持自定义颜色、大小和图标样式,使开发者能够无缝匹配其应用的设计语言。

适合场景

  • 增强移动应用导航用户体验
  • 创建视觉上引人注目的底部标签
  • 为标签选择添加动画反馈
  • 现代化遗留导航栏
  • 设计带有动态元素的极简界面

主要特点

  • 平滑的墨水斑点过渡动画
  • 可自定义颜色和尺寸
  • 与现有 Flutter 应用轻松集成
  • 支持图标和标签自定义
  • 轻量且高效

适合对象

  • 寻求现代导航 UI 的 Flutter 开发人员
  • 专注于用户体验和视觉精致的应用程序
  • 设计人员实现交互式底部导航
  • 需要微妙但有影响力动画的项目
  • 具有简洁现代美感的移动应用

使用建议

  • 可能不适合所有设计风格或品牌
  • 对低端设备的性能影响
  • 有限的平台特定行为自定义
  • 需要仔细考虑颜色对比度以确保可访问性
  • 不建议用于高度复杂的导航结构

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Inkblob_navigation_bar

A custom navigation bar with smooth & dynamic ink blob transition effect.

Overview

This packages was inspired by this post from Dribbble

Implemented:

Gallery

Dynamic Movement
Customizable Curve
Custom Colors
Optional Titles
Works with any widgets

How to install

Simply add the package to your dependencies! No other steps required :)

Documentation

To use the InkblobNavigationBar you can simply use it in the bottomNavigationBar field of your material scaffold:

Scaffold(
  ...
  bottomNavigationBar: InkblobNavigationBar(
    ...
  )
)
You can customize these attributes in the navigation bar.
Attributes Type Description Default
showElevation bool Enable subtle shadow effect true
items List<InkblobBarItem> Item data for NavigationBar required
onItemSelected Function(int) Callback function when item tapped null
selectedIndex int Selected item index of navigation bar. required
previousIndex int Previously selected item index of navigation bar. selectedIndex
iconSize double Size of icons. 24.0
backgroundColor Color Background color of [CustomNavigationBar] Theme.bottomAppBarColor
containerHeight double Height of the NavigationBar 60
itemWidth double Total width of each item 2*containerHeight
curve Curve Animation curve of scale effect Curves.easInOutExpo
animationDuration Duration Duration of the total animation Duration(milliseconds: 270)

Attention: Both the selectedIndex and previousIndex are required for the animation to perform, an example of how to implement this is shown in the provided example app.

To customize the items in the navigation bar, just supply a list of InkblobBarItem like this.

InkblobNavigationBar(
  ...
  items: [
    // Simple Icon with a Title & Color
    InkblobBarItem(
      title: const Text('User'),
      filledIcon: const Icon(SpiriIcons.fi_sr_user),
      emptyIcon: const Icon(SpiriIcons.fi_rr_user),
      color: Colors.blue,
    ),
    // Custom Containers
    InkblobBarItem(
      filledIcon: Container(
        decoration: BoxDecoration(
          color: Colors.black,
          borderRadius: BorderRadius.circular(12),
        ),
      ),
      emptyIcon: Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(12),
          border: Border.all(color: Colors.black, width: 2),
        ),
      ),
    ),
    // Even Text Widgets
    InkblobBarItem(
      filledIcon: const Text('❤️', style: TextStyle(fontSize: 20)),
      emptyIcon: const Text('🖤', style: TextStyle(fontSize: 20)),
      color: Colors.red,
    ),
  ],
)

Example

Check the example app for a full implementation example.

Contribute

Issues and pull requests are always welcome!
If you found this project helpful, consider buying me a cup of :coffee:

所属分类

源码仓库

使用此插件的项目

暂无相关数据。