Flutter仿拟态下拉菜单插件material_neumorphic_dropdown的使用
Flutter仿拟态下拉菜单插件material_neumorphic_dropdown的使用
简介
material_neumorphic_dropdown 是 Material Neumorphic 小部件套件的一部分。它提供了带有仿拟态效果的下拉菜单组件,可以为您的 Flutter 应用程序添加现代且美观的设计。
使用方法
添加依赖
在您的 pubspec.yaml 文件中添加以下依赖:
dependencies:
  material_neumorphic: ^x.x.x
然后运行 flutter pub get 来安装依赖。
基本用法
NeumorphicDropdown 和 NeumorphicDropdownFormField 是两个主要的小部件,它们扩展了原生的 DropdownButton 和 DropdownButtonFormField,并增加了仿拟态风格。
属性说明
| 属性名 | 类型 | 描述 | 
|---|---|---|
| neumorphicStyle | NeumorphicStyle? | 自定义仿拟态样式 | 
| margin | EdgeInsets? | 下拉菜单的外边距 | 
| borderRadius | BorderRadiusGeometry | 边框圆角半径 | 
| depth | double? | 仿拟态深度(正值为凸起,负值为凹陷) | 
| value | dynamic | 当前选中的值 | 
| items | List<DropdownMenuItem> | 下拉菜单选项列表 | 
| onChanged | ValueChanged<dynamic>? | 用户选择时触发的回调函数 | 
示例代码
以下是一个完整的示例代码,展示如何使用 NeumorphicDropdown 和 NeumorphicDropdownFormField:
import 'package:flutter/material.dart';
import 'package:material_neumorphic/material_neumorphic.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Neumorphic Dropdown Example')),
        body: Center(child: DemoPage()),
      ),
    );
  }
}
class DemoPage extends StatefulWidget {
  [@override](/user/override)
  _DemoPageState createState() => _DemoPageState();
}
class _DemoPageState extends State<DemoPage> {
  String name = 'A'; // 当前选中的值
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16.0),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          // 使用 NeumorphicDropdown
          NeumorphicDropdown(
            margin: const EdgeInsets.symmetric(vertical: 12),
            borderRadius: const BorderRadius.all(Radius.circular(12.0)),
            depth: -4,
            value: name,
            items: [
              DropdownMenuItem(
                child: Text('A'),
                value: 'A',
              ),
              DropdownMenuItem(
                child: Text('B'),
                value: 'B',
              ),
              DropdownMenuItem(
                child: Text('C'),
                value: 'C',
              ),
            ],
            onChanged: (value) {
              setState(() {
                name = value as String;
              });
            },
          ),
          // 使用 NeumorphicDropdownFormField
          NeumorphicDropdownFormField(
            margin: const EdgeInsets.symmetric(vertical: 12),
            borderRadius: const BorderRadius.all(Radius.circular(12.0)),
            depth: -4,
            value: name,
            items: [
              DropdownMenuItem(
                child: Text('A'),
                value: 'A',
              ),
              DropdownMenuItem(
                child: Text('B'),
                value: 'B',
              ),
              DropdownMenuItem(
                child: Text('C'),
                value: 'C',
              ),
            ],
            onChanged: (value) {
              setState(() {
                name = value as String;
              });
            },
          ),
        ],
      ),
    );
  }
}
更多关于Flutter仿拟态下拉菜单插件material_neumorphic_dropdown的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter仿拟态下拉菜单插件material_neumorphic_dropdown的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
material_neumorphic_dropdown 是一个仿拟态设计风格的下拉菜单插件,适用于 Flutter 应用。它结合了 Material Design 和 Neumorphism 设计风格,提供了一种现代且美观的下拉菜单体验。
安装
首先,你需要在 pubspec.yaml 文件中添加 material_neumorphic_dropdown 插件的依赖:
dependencies:
  flutter:
    sdk: flutter
  material_neumorphic_dropdown: ^1.0.0  # 请检查最新版本
然后运行 flutter pub get 来安装依赖。
使用示例
以下是一个简单的使用示例,展示如何在 Flutter 应用中使用 material_neumorphic_dropdown 创建一个仿拟态风格的下拉菜单。
import 'package:flutter/material.dart';
import 'package:material_neumorphic_dropdown/material_neumorphic_dropdown.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Neumorphic Dropdown Example'),
        ),
        body: Center(
          child: NeumorphicDropdownExample(),
        ),
      ),
    );
  }
}
class NeumorphicDropdownExample extends StatefulWidget {
  [@override](/user/override)
  _NeumorphicDropdownExampleState createState() => _NeumorphicDropdownExampleState();
}
class _NeumorphicDropdownExampleState extends State<NeumorphicDropdownExample> {
  String? selectedValue;
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        NeumorphicDropdown(
          items: [
            NeumorphicDropdownItem(value: 'Option 1', child: Text('Option 1')),
            NeumorphicDropdownItem(value: 'Option 2', child: Text('Option 2')),
            NeumorphicDropdownItem(value: 'Option 3', child: Text('Option 3')),
          ],
          onChanged: (value) {
            setState(() {
              selectedValue = value;
            });
          },
          value: selectedValue,
          hint: Text('Select an option'),
        ),
        SizedBox(height: 20),
        Text('Selected Value: $selectedValue'),
      ],
    );
  }
} 
        
       
             
             
            

