Flutter圆角下拉选择插件flutter_rounded_dropdown的使用

Flutter圆角下拉选择插件flutter_rounded_dropdown的使用

Flutter RoundedDropDown

pub package License: MIT

一个带有自定义实现的圆角/下拉选择框的Flutter包。

🌟 开始使用

要开始使用此包,请在pubspec.yaml文件中添加flutter_rounded_dropdown依赖:

dependencies:
  flutter_rounded_dropdown: "<latest_release>"

📌 简单示例

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

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

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter Rounded DropDown Example'),
    );
  }
}

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

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  // 定义下拉选项列表
  final List<String> dropDownItems = ['India', 'America', 'China', 'Australia'];
  
  // 初始化默认值
  final String initialDropDownValue = 'India';
  
  // 存储选中的值
  String? selectedValue = '';

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(18.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              // 使用RoundedDropDown组件
              RoundedDropDown(
                dropDownItems: dropDownItems,
                initialDropDownValue: initialDropDownValue,
                onValueChanged: (String value) {
                  // 更新选中的值
                  setState(() {
                    selectedValue = value;
                  });
                },
              ),
              // 显示选中的值
              Text(
                '$selectedValue',
                style: Theme.of(context).textTheme.headlineMedium,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

📝 文档

以下是RoundedDropDown组件的基本用法:

RoundedDropDown(
  dropDownItems: ['India', 'America', 'China', 'Australia'],
  initialDropDownValue: 'India',
  onValueChanged: (String value) {
    print('selected value is $value');
  },
)

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

1 回复

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


flutter_rounded_dropdown 是一个 Flutter 插件,用于创建带有圆角的下拉选择框。它提供了一个简单而美观的下拉菜单,适用于需要自定义外观的应用场景。

安装

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

dependencies:
  flutter:
    sdk: flutter
  flutter_rounded_dropdown: ^1.0.0

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

基本用法

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Rounded Dropdown Example'),
        ),
        body: Center(
          child: RoundedDropdown(
            items: ['Option 1', 'Option 2', 'Option 3'],
            onChanged: (String? value) {
              print('Selected: $value');
            },
            hint: Text('Select an option'),
            borderRadius: BorderRadius.circular(20),
            elevation: 2,
          ),
        ),
      ),
    );
  }
}

参数说明

  • items: 下拉菜单中的选项列表。
  • onChanged: 当用户选择一个选项时触发的回调函数。
  • hint: 未选择任何选项时显示的提示文本。
  • borderRadius: 下拉框的圆角半径。
  • elevation: 下拉框的阴影高度。

自定义外观

你可以通过设置不同的参数来自定义下拉框的外观,例如:

RoundedDropdown(
  items: ['Option 1', 'Option 2', 'Option 3'],
  onChanged: (String? value) {
    print('Selected: $value');
  },
  hint: Text('Select an option'),
  borderRadius: BorderRadius.circular(20),
  elevation: 2,
  icon: Icon(Icons.arrow_drop_down),
  iconSize: 24,
  style: TextStyle(color: Colors.blue),
  dropdownColor: Colors.white,
  borderColor: Colors.blue,
),
回到顶部