搜尋套件、儲存庫與 APP 分類

buttons_tabbar 封面
套件詳情v2.0.0

buttons_tabbar

一個 Flutter 套件,實作每個標籤都是切換按鈕的 TabBar。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
1萬
喜歡數
448
Pub 分數
150

安裝套件

flutter pub add buttons_tabbar

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

ButtonsTabBar 是一個 Flutter 套件,提供可自訂的 TabBar,其中每個標籤皆作為切換按鈕,讓使用者能個別選擇與取消選擇選項。它透過為選取狀態提供視覺反饋,增強了具有多個區段之應用程式的導航體驗。此套件支援所有主要平台,包含 Android、iOS、Web、macOS、Windows 與 Linux,非常適合跨平台應用。該套件以簡潔與彈性為設計核心,可輕鬆整合至現有的 Flutter 專案中。

適用情境

  • 移動和網頁應用中的自定義標籤導航
  • 互動式篩選介面
  • 多選選項卡佈局
  • 動態內容切換
  • 使用者偏好設定
  • 儀表板導航

主要特色

  • 可切換的標籤頁標籤
  • 跨平台相容性
  • 可自訂樣式
  • 與 Flutter 的簡單整合
  • 所選標籤的狀態管理
  • 響應式設計支援

適合對象

  • 開發互動式 UI 的開發者
  • 需要多選標籤的應用
  • 尋求直覺導航的設計人員
  • 跨平台 Flutter 項目
  • 快速原型介面變更

使用建議

  • 可能需要自定義邏輯來處理複雜的狀態
  • 有限的內建動畫
  • 不適用於僅單選的場景
  • 需要手動處理標籤頁切換
  • 最適合小型到中型標籤集
  • 依賴外部樣式實現高級視覺效果

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

Buttons TabBar

Publish Pub

Buttons TabBar is an open-source Flutter package that provides a tabbar where each tab indicator is a toggle button. It allows you to create interactive and customizable tab bars for your Flutter applications.

ButtonsTabBar screen animation

Features

✨ Each tab indicator is a toggle button 🎨 Customizable appearance and behavior 🖌️ Supports various styling options, including background color, border color, label style, icon color, and more 🚀 Smooth transition animations 📱 Works like a native TabBar ⚙️ Simple and easy to use configuration with a wide range of parameters

Installation

To use Buttons TabBar in your Flutter project, follow these steps:

  1. Add the dependency to your pubspec.yaml file:
dependencies:
  flutter:
    sdk: flutter
  buttons_tabbar: ^1.3.14
  1. Run flutter pub get to install the package.

Usage

Import the package in your Dart file and customize the tab bar according to your needs:

import 'package:buttons_tabbar/buttons_tabbar.dart';

DefaultTabController(
  length: ...,
  child: Column(
    children: <Widget>[
      ButtonsTabBar(
        // Customize the appearance and behavior of the tab bar
        backgroundColor: Colors.red,
        borderWidth: 2,
        borderColor: Colors.black,
        labelStyle: TextStyle(
          color: Colors.white,
          fontWeight: FontWeight.bold,
        ),
        unselectedLabelStyle: TextStyle(
          color: Colors.black,
          fontWeight: FontWeight.bold,
        ),
        // Add your tabs here
        tabs: ...,
      ),
      Expanded(
        child: TabBarView(
          children: ...,
        ),
      ),
    ],
  ),
)

Examples

Here are a few examples of how you can use Buttons TabBar:

Example #1

ButtonsTabBar - Example #1

DefaultTabController(
  length: ...,
  child: Column(
    children: <Widget>[
      ButtonsTabBar(
        backgroundColor: Colors.red,
        tabs: ...,
      ),
      Expanded(
        child: TabBarView(
          children: ...,
        ),
      ),
    ],
  ),
)
Example #2

ButtonsTabBar - Example #2

DefaultTabController(
  length: ...,
  child: Column(
    children: <Widget>[
      ButtonsTabBar(
        backgroundColor: Colors.blue[600],
        unselectedBackgroundColor: Colors.white,
        labelStyle: TextStyle(
          color: Colors.white,
          fontWeight: FontWeight.bold,
        ),
        unselectedLabelStyle: TextStyle(
          color: Colors.blue[600],
          fontWeight: FontWeight.bold,
        ),
        borderWidth: 1,
        unselectedBorderColor: Colors.blue[600],
        radius: 100,
        tabs: ...,
      ),
      Expanded(
        child: TabBarView(
          children: ...,
        ),
      ),
    ],
  ),
)
Example #3

ButtonsTabBar - Example #3

DefaultTabController(
  length: 6,
  child: Column(
    children: <Widget>[
      ButtonsTabBar(
        radius: 12,
        contentPadding: EdgeInsets.symmetric(horizontal: 12),
        borderWidth: 2,
        borderColor: Colors.transparent,
        center: true,
        decoration: BoxDecoration(
          gradient: LinearGradient(
            colors: <Color>[
              Color(0xFF0D47A1),
              Color(0xFF1976D2),
              Color(0xFF42A5F5),
            ],
          ),
        ),
        unselectedLabelStyle: TextStyle(color: Colors.black),
        labelStyle: TextStyle(color: Colors.white),
        height: 56,
        tabs: ...,
      ),
      Expanded(
        child: TabBarView(
          children: ...,
        ),
      ),
    ],
  ),
)

For more examples, please refer to the example.dart file.

Properties

Below are the properties available for customizing the ButtonsTabBar. For more detailed information, check the API reference.

Property Type Description Default
backgroundColor Color The background color of the button on its selected state. Theme.of(context).accentColor
borderColor Color The border color of the button on its selected state. Colors.black
borderWidth double The width of the solid border for each button. 0
buttonMargin EdgeInsets The EdgeInsets used for the margin of the buttons. EdgeInsets.all(4.0)
center bool Center the tab buttons. false
contentPadding EdgeInsets The EdgeInsets used for the padding of the buttons' content. EdgeInsets.symmetric(horizontal: 4.0)
controller TabController This widget's selection and animation state. DefaultTabController.of
decoration BoxDecoration The BoxDecoration of the button on its selected state. null
duration int The duration in milliseconds of the transition animation. 250
elevation double The value of elevation applied to each button. 0
height double? Override the default height. 46.0
labelSpacing double The spacing between the icon and the text. If only one of those is provided, no spacing is applied. 4.0
labelStyle TextStyle The TextStyle of the button's text on its selected state. The color provided on the TextStyle will be used for the icon's color. TextStyle(color: Colors.white)
onTap void Function(int)? An optional callback that's called when the TabBar is tapped. null
physics ScrollPhysics The physics used for the ScrollController of the tabs list. BouncingScrollPhysics()
radius double The value of the BorderRadius.circular applied to each button. 7.0
splashColor Color? The splash color of the button. null
tabs List<Widget> The tabs to display. Typically a list of two or more Tab widgets. @required
unselectedBackgroundColor Color The background color of the button on its unselected state. Colors.grey[300]
unselectedBorderColor Color The border color of the button on its unselected state. If it's value is null, the Color of borderColor is used. null
unselectedDecoration BoxDecoration The BoxDecoration of the button on its unselected state. null
unselectedLabelStyle TextStyle The TextStyle of the button's text on its unselected state. The color provided on the TextStyle will be used for the icon's color. TextStyle(color: Colors.black)

Apps Using Buttons TabBar

Here are some apps that are using Buttons TabBar to create engaging and interactive tab bars:

  1. Spotube - Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile! Spotube

If you are using Buttons TabBar in your app and would like to showcase it here, please let us know. We would be happy to feature your app as well.

Please note that the above apps are provided as examples and may not be actively maintained or associated with the Buttons TabBar package.

Future Development

If you have any suggestions or encounter any issues, feel free to let me know. I am committed to improving and maintaining this package.

License

This package is licensed under the MIT License. For more information, see the LICENSE.md file.

More Information

For more information, visit the Buttons TabBar GitHub repository or the author's website.

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案