Flutter拟物风格界面插件neumorphic_widget的使用

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

Flutter拟物风格界面插件neumorphic_widget的使用

帮助开发者将一些流行的控件转换为拟物风格(Neumorphism)。

特性

  • NeumorphicCard: 具有拟物风格外观的卡片。
  • NeumorphicButton: 实现按下和释放按钮效果,并带有 onTap 回调。
  • NeumorphicTextInputField: 构建具有浮雕效果的输入框。

开始使用

在您的 pubspec.yaml 文件中添加以下依赖项:

dependencies:
  neumorphic_widget: ^版本号

然后运行 flutter pub get 安装该插件。


使用方法

截图展示

以下是使用 neumorphic_widget 的效果截图:


示例代码

1. 使用 NeumorphicCard

通过设置阴影模糊度和背景颜色来创建一个拟物风格的卡片。

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

class MyWidget extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return NeumorphicCard(
      // 阴影模糊度
      shadowBlur: 15,
      // 背景颜色
      backgroundColor: Colors.grey[200],
      child: Card(
        color: Colors.grey[200],
        elevation: 0,
        child: Center(
          child: Text("这是一个拟物风格卡片"),
        ),
      ),
    );
  }
}

2. 使用 NeumorphicButton

实现带有按下效果的按钮。

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

class MyWidget extends StatelessWidget {
  void _submit() {
    print("登录按钮被点击");
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return NeumorphicButton(
      // 圆角半径
      borderRadius: BorderRadius.circular(8.0),
      // 按钮宽度
      width: MediaQuery.of(context).size.width * 0.5,
      // 按钮高度
      height: 40,
      // 点击事件回调
      onPressed: _submit,
      child: Text(
        'LOGIN',
        style: TextStyle(color: Colors.white),
      ),
    );
  }
}

3. 使用 NeumorphicTextInputField

构建具有浮雕效果的输入框。

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

class MyWidget extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return NeumorphicTextInputField(
      textFormField: TextFormField(
        // 输入框保存数据的回调
        onSaved: (_) {},
        decoration: buildNeumorphicInputDecoration('Username'),
      ),
    );
  }
}

// 自定义输入框装饰
 InputDecoration buildNeumorphicInputDecoration(String hintText) {
  return InputDecoration(
    hintText: hintText,
    border: InputBorder.none,
    contentPadding: EdgeInsets.symmetric(horizontal: 16.0),
  );
}

更多关于Flutter拟物风格界面插件neumorphic_widget的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter拟物风格界面插件neumorphic_widget的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


neumorphic_widget 是一个用于 Flutter 的拟物风格(Neumorphic)UI 组件库,它可以帮助你轻松地创建具有拟物风格的界面。拟物风格是一种设计趋势,强调通过阴影和高光来模拟物理物体的外观,使界面元素看起来像是凹凸或凹陷的。

安装

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

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

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

使用

1. 基本使用

neumorphic_widget 提供了多种拟物风格的组件,如 NeumorphicButtonNeumorphicContainer 等。以下是一个简单的示例:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: NeumorphicColors.background,
        body: Center(
          child: NeumorphicButton(
            onPressed: () {
              print('Button Pressed');
            },
            child: Text('Neumorphic Button'),
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们使用了 NeumorphicButton 来创建一个拟物风格的按钮。NeumorphicColors.background 用于设置背景颜色,这是拟物风格中常用的一种背景色。

2. 自定义样式

你可以通过设置 style 参数来自定义拟物风格的外观。例如,你可以调整阴影的深度、颜色、圆角等:

NeumorphicButton(
  onPressed: () {
    print('Button Pressed');
  },
  style: NeumorphicStyle(
    depth: 10,  // 阴影深度
    intensity: 0.8,  // 阴影强度
    color: Colors.grey[300],  // 背景颜色
    shape: NeumorphicShape.flat,  // 形状(flat 或 convex)
    boxShape: NeumorphicBoxShape.roundRect(BorderRadius.circular(20)),  // 圆角
  ),
  child: Text('Custom Neumorphic Button'),
)

3. 其他组件

除了按钮,neumorphic_widget 还提供了其他拟物风格的组件,如 NeumorphicContainerNeumorphicIconNeumorphicText 等。你可以根据需要选择使用。

NeumorphicContainer(
  child: Center(
    child: Text('Neumorphic Container'),
  ),
  style: NeumorphicStyle(
    depth: -5,  // 负值表示凹陷效果
    color: Colors.grey[300],
    boxShape: NeumorphicBoxShape.circle(),  // 圆形
  ),
)
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!