Flutter切换栏组件插件toggle_bar的使用

Flutter切换栏组件插件toggle_bar的使用

插件说明

toggle_bar 是一个用于在 Flutter 中展示可自定义切换栏的 Dart 包。它支持 iOS 和 Android 平台。

toggle_bar 示例

安装

pubspec.yaml 文件中添加依赖:

dependencies:
  toggle_bar: ^1.0.0

然后运行以下命令以获取依赖:

flutter pub get

使用

以下是一个简单的使用示例:

import 'package:flutter/material.dart';
import 'package:toggle_bar/toggle_bar.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.deepPurple,
      ),
      debugShowCheckedModeBanner: false,
      home: MyHomePage(title: 'Toggle Bar Example'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  // 定义标签数组
  List<String> labels = ["Apples", "Bananas", "Oranges", "Papayas"];
  
  // 当前选中的索引
  int currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          children: <Widget>[
            // 使用 ToggleBar 组件
            ToggleBar(
              labels: labels,
              backgroundColor: Colors.grey[800], // 背景颜色
              onSelectionUpdated: (index) => setState(() => currentIndex = index), // 更新选中状态
            ),
            SizedBox(
              height: 300,
            ),
            // 显示当前选中的标签
            Text(
              labels[currentIndex],
              style: Theme.of(context).textTheme.display1,
            )
          ],
        ),
      ),
    );
  }
}

参数说明

以下是 ToggleBar 的参数列表及其含义:

[@required](/user/required) List<String> labels; // 必填,切换栏的标签数组
Color backgroundColor; // 切换栏的背景颜色,默认为白色
Color selectedTabColor; // 选中标签的背景颜色,默认为蓝色
Color selectedTextColor; // 选中标签的文字颜色,默认为白色
Color textColor; // 未选中标签的文字颜色,默认为黑色
BoxBorder backgroundBorder; // 切换栏的边框样式,默认无边框
TextStyle labelTextStyle; // 标签文字的样式,默认为系统默认样式
Function(int) onSelectionUpdated; // 当用户选择不同的标签时触发的回调函数
1 回复

更多关于Flutter切换栏组件插件toggle_bar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


toggle_bar 是一个用于 Flutter 的切换栏组件插件,它允许你创建一个带有多个选项的切换栏,用户可以通过点击不同的选项来切换内容。这个插件非常适合用于需要快速切换不同视图或功能的场景。

安装

首先,你需要在 pubspec.yaml 文件中添加 toggle_bar 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  toggle_bar: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

基本用法

以下是一个简单的示例,展示了如何使用 toggle_bar 插件:

import 'package:flutter/material.dart';
import 'package:toggle_bar/toggle_bar.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Toggle Bar Example'),
        ),
        body: ToggleBarExample(),
      ),
    );
  }
}

class ToggleBarExample extends StatefulWidget {
  @override
  _ToggleBarExampleState createState() => _ToggleBarExampleState();
}

class _ToggleBarExampleState extends State<ToggleBarExample> {
  int _selectedIndex = 0;

  final List<String> _labels = ['Option 1', 'Option 2', 'Option 3'];

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        ToggleBar(
          labels: _labels,
          onSelectionUpdated: (index) {
            setState(() {
              _selectedIndex = index;
            });
          },
        ),
        Expanded(
          child: Center(
            child: Text('Selected Option: ${_labels[_selectedIndex]}'),
          ),
        ),
      ],
    );
  }
}

参数说明

  • labels: 一个字符串列表,表示切换栏中的各个选项。
  • onSelectionUpdated: 当用户选择不同的选项时触发的回调函数,返回当前选中的索引。
  • selectedIndex: 当前选中的索引,默认为 0
  • backgroundColor: 切换栏的背景颜色。
  • activeColor: 选中选项的背景颜色。
  • inactiveColor: 未选中选项的背景颜色。
  • textColor: 文本颜色。
  • activeTextColor: 选中选项的文本颜色。
  • inactiveTextColor: 未选中选项的文本颜色。
  • borderRadius: 切换栏的圆角半径。
  • borderColor: 切换栏的边框颜色。
  • borderWidth: 切换栏的边框宽度。

自定义样式

你可以通过设置不同的参数来自定义切换栏的外观。例如:

ToggleBar(
  labels: _labels,
  onSelectionUpdated: (index) {
    setState(() {
      _selectedIndex = index;
    });
  },
  backgroundColor: Colors.grey[200],
  activeColor: Colors.blue,
  inactiveColor: Colors.white,
  textColor: Colors.black,
  activeTextColor: Colors.white,
  borderRadius: 20.0,
  borderColor: Colors.blue,
  borderWidth: 2.0,
);
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!