Flutter标签页切换插件tabbed_card的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter标签页切换插件tabbed_card的使用

Tabbed Card 是一个自定义卡片组件,带有选项卡功能,可以用于在单个页面中展示多个内容。

插件简介

Tabbed Card 通过选项卡的形式来管理不同的内容区域。以下是该插件的一个演示动画:

开始使用

添加依赖

首先,在 pubspec.yaml 文件中添加 tabbed_card 依赖:

dependencies:
  flutter:
    sdk: flutter
  tabbed_card: ^0.0.1

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

导入插件

在你的 Dart 文件中导入 tabbed_card

import 'package:tabbed_card/tabbed_card.dart';

示例代码

以下是一个完整的示例 Demo,展示了如何使用 tabbed_card 插件创建带选项卡的卡片。

import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:tabbed_card/tabbed_card.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Tabbed Card Example',
      scrollBehavior: ScrollConfiguration.of(context)
          .copyWith(scrollbars: false, dragDevices: {
        PointerDeviceKind.touch,
        PointerDeviceKind.mouse,
      }),
      home: const MyHomePage(title: 'Tabbed Card'),
    );
  }
}

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

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Container(
        padding: const EdgeInsets.all(25),
        child: TabbedCard(
          tabs: [
            TabbedCardItem(
              label: "First Tab",
              child: const Placeholder(
                color: Colors.blue,
              ),
            ),
            TabbedCardItem(
              label: 'Second Tab',
              child: const Placeholder(
                color: Colors.red,
              ),
            ),
            TabbedCardItem(
              label: "With a background color",
              options: TabbedCardItensOptions(
                tabColor: Colors.amber,
              ),
              child: const Placeholder(),
            ),
            TabbedCardItem(
              label: 'With an icon',
              icon: const Icon(Icons.dashboard),
              child: const Placeholder(
                color: Colors.red,
              ),
            ),
            TabbedCardItem(
              label: 'With an icon and custom LabelStyle',
              icon: const Icon(
                Icons.dashboard,
                color: Colors.white,
              ),
              options: TabbedCardItensOptions(
                  tabColor: Colors.black,
                  labelStyle: const TextStyle(color: Colors.white)),
              child: const Placeholder(
                color: Colors.purple,
              ),
            ),
            TabbedCardItem(
              label: 'Another with an icon and custom LabelStyle',
              icon: const Icon(
                Icons.dashboard,
                color: Colors.white,
              ),
              options: TabbedCardItensOptions(
                  tabColor: Colors.red,
                  labelStyle: const TextStyle(color: Colors.white)),
              child: const Placeholder(
                color: Colors.purple,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的应用,包含多个选项卡,每个选项卡都显示一个占位符(Placeholder)。你可以根据需要替换这些占位符为实际的内容。

自定义选项卡样式

你还可以通过 TabbedCardItensOptions 来自定义选项卡的样式,比如背景颜色、图标和标签文本样式等。

希望这个示例能够帮助你快速上手 tabbed_card 插件,并在你的项目中实现漂亮的选项卡界面!


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

1 回复

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


在Flutter中,tabbed_card 并不是一个官方或广泛使用的包名来指代标签页切换插件。通常,Flutter 中用于实现标签页切换的是 TabBarTabBarView 组件。这些组件是 Flutter Material 库的一部分,用于创建带有标签页的视图切换。

下面是一个使用 TabBarTabBarView 来实现标签页切换的示例代码:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
        length: 3, // 标签页的数量
        child: Scaffold(
          appBar: AppBar(
            title: Text('Tabbed Card Example'),
            bottom: TabBar(
              tabs: [
                Tab(icon: Icon(Icons.directions_car), text: 'Tab 1'),
                Tab(icon: Icon(Icons.directions_transit), text: 'Tab 2'),
                Tab(icon: Icon(Icons.directions_bike), text: 'Tab 3'),
              ],
            ),
          ),
          body: TabBarView(
            children: [
              Icon(Icons.directions_car, size: 64, color: Colors.green),
              Center(child: Text('Tab 2 content')),
              Icon(Icons.directions_bike, size: 64, color: Colors.red),
            ],
          ),
        ),
      ),
    );
  }
}

代码解释:

  1. MaterialApp:这是 Flutter 应用的根组件。
  2. DefaultTabController:它用于管理 TabBarTabBarView 之间的同步。length 参数指定了标签页的数量。
  3. Scaffold:提供了标准的 Material Design 布局,包括 AppBarbody
  4. AppBar:应用的顶部栏,包含应用的标题和底部的 TabBar
  5. TabBar:包含三个标签页,每个标签页都有一个图标和文本。
  6. TabBarView:与 TabBar 同步的视图,每个标签页对应一个子视图。

注意事项:

  • TabBarTabBarView 的子项数量必须匹配。
  • DefaultTabControllerlength 属性应该与 TabBar 中的标签数量一致。
  • TabBarTabBarView 必须位于 ScaffoldappBarbody 中,以确保它们正确显示和同步。

如果你确实在寻找一个名为 tabbed_card 的特定插件,并且它不是 Flutter Material 库的一部分,你可能需要在 pub.dev(Flutter 的包管理器)上搜索该插件,并查看其官方文档和示例代码。然而,大多数情况下,TabBarTabBarView 足以满足大多数标签页切换的需求。

回到顶部