Flutter圆形选择器插件circular_selector_v2的使用

Flutter圆形选择器插件circular_selector_v2的使用

在Flutter开发中,circular_selector_v2 是一个非常实用的插件,用于创建圆形选择器。它可以帮助开发者快速实现类似于苹果设备上的控制中心功能。本文将详细介绍如何使用 circular_selector_v2 插件,并提供完整的代码示例。


使用步骤

1. 添加依赖

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

dependencies:
  circular_selector_v2: ^版本号

然后运行以下命令以安装依赖:

flutter pub get

2. 创建基本布局

我们将使用 CircularSelector 小部件来创建一个圆形选择器,并将其嵌套在一个 Stack 中,以便实现多层选择器的效果。


示例代码

以下是完整的示例代码,展示了如何使用 circular_selector_v2 插件:

// 导入必要的库
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:circular_selector_v2/circular_selector_v2.dart';

void main() {
  // 启动应用
  runApp(const MyApp());
}

// 定义主应用程序类
class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Circular Selector Demo',
      themeMode: ThemeMode.system,
      darkTheme: ThemeData.dark(),
      home: const MyHomePage(title: 'Circular Selector Demo'),
    );
  }
}

// 定义主页面类
class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  // 定义选择回调函数
  Function(int) testSelected(int selectorIndex) {
    return (index) {
      if (kDebugMode) {
        print('Selected: $index of selector $selectorIndex');
      }
    };
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: Stack(children: [
          // 第一层圆形选择器
          Container(
            decoration: const BoxDecoration(
              shape: BoxShape.circle,
            ),
            child: Stack(alignment: Alignment.center, children: [
              CircularSelector(
                onSelected: testSelected(0), // 回调函数
                childSize: 30.0, // 子项大小
                radiusDividend: 2.5, // 半径倍数
                customOffset: Offset(
                  0.0,
                  AppBar().preferredSize.height -
                      MediaQuery.of(context).padding.top,
                ), // 自定义偏移量
                circleBackgroundColor: const Color.fromARGB(255, 85, 85, 85), // 圆形背景颜色
                children: const [
                  Icon(Icons.person), // 子项图标
                  Icon(Icons.notifications),
                  Icon(Icons.nightlight),
                  Icon(Icons.volume_up),
                  Icon(Icons.wb_sunny),
                  Icon(Icons.settings),
                ],
              ),
              // 第二层圆形选择器
              CircularSelector(
                onSelected: testSelected(2), // 回调函数
                childSize: 30.0, // 子项大小
                radiusDividend: 7, // 半径倍数
                customOffset: Offset(
                  0.0,
                  AppBar().preferredSize.height -
                      MediaQuery.of(context).padding.top,
                ), // 自定义偏移量
                circleBackgroundColor: const Color.fromARGB(255, 0, 0, 0), // 圆形背景颜色
                children: const [
                  Icon(Icons.home_filled), // 子项图标
                  Icon(Icons.logout),
                ],
              ),
            ]),
          ),
        ]),
      ),
    );
  }
}

更多关于Flutter圆形选择器插件circular_selector_v2的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter圆形选择器插件circular_selector_v2的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


circular_selector_v2 是一个用于 Flutter 的圆形选择器插件,它允许用户通过旋转圆形选择器来选择不同的选项。这个插件通常用于需要用户从多个选项中进行选择的场景,比如选择时间、日期、颜色等。

安装

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

dependencies:
  flutter:
    sdk: flutter
  circular_selector_v2: ^1.0.0  # 请根据实际情况使用最新版本

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

基本用法

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Circular Selector Example'),
        ),
        body: Center(
          child: CircularSelector(
            items: [
              CircularSelectorItem(label: 'Option 1', value: 1),
              CircularSelectorItem(label: 'Option 2', value: 2),
              CircularSelectorItem(label: 'Option 3', value: 3),
              CircularSelectorItem(label: 'Option 4', value: 4),
            ],
            onSelected: (value) {
              print('Selected value: $value');
            },
          ),
        ),
      ),
    );
  }
}

参数说明

  • items: 一个 CircularSelectorItem 列表,每个 CircularSelectorItem 包含一个 label 和一个 valuelabel 是显示在圆形选择器上的文本,value 是用户选择时返回的值。

  • onSelected: 当用户选择一个选项时触发的回调函数,返回所选选项的 value

自定义样式

你可以通过传递不同的参数来自定义圆形选择器的样式,例如:

CircularSelector(
  items: [
    CircularSelectorItem(label: 'Option 1', value: 1),
    CircularSelectorItem(label: 'Option 2', value: 2),
    CircularSelectorItem(label: 'Option 3', value: 3),
    CircularSelectorItem(label: 'Option 4', value: 4),
  ],
  onSelected: (value) {
    print('Selected value: $value');
  },
  radius: 150,  // 设置圆形选择器的半径
  backgroundColor: Colors.grey[200],  // 设置背景颜色
  selectedColor: Colors.blue,  // 设置选中项的颜色
  textStyle: TextStyle(fontSize: 16, color: Colors.black),  // 设置文本样式
)
回到顶部