Flutter 中的新拟态设计

新拟态是一种利用阴影来创建浮雕效果的 UI 元素。它通过假设容器的两条对边相对于光源的位置不同——一边面向光源,另一边背向光源——从而在容器的另一侧产生阴影。这种设计赋予了我们的小部件一种优雅且整洁的外观。因此,为了创建一个新拟态设计,我们将首先在 Flutter 中创建一个无状态小部件,并将其命名为 NeumorphicDesign

在本文中,我们将探讨一种有趣的 UI 元素,称为 新拟态。我们将学习如何将 Flutter 中基本的 容器 修改为新拟态容器,以便在我们的应用中使用。此外,我们将使用 Flutter 容器 来实现新拟态,并使用 VS Code 来构建 Flutter 应用程序。

Dart


CODEBLOCK_66d40eab

首先,让我们给应用设置一个背景颜色。由于我们只创建了一个容器,且容器本身不包含任何内容,运行应用时我们将只看到一个空白屏幕。所以,让我们给容器指定一些高度和宽度。另外,通过使用 Center 包裹容器,我们可以使其位于应用的中心位置。

Dart


CODEBLOCK_8b14aa1c

要更改容器的颜色或为其分配圆角,我们需要使用 BoxDecoration

BoxDecoration 类的构造函数:

Dart


CODEBLOCK_d0df536c

我们将利用 borderRadius 和 boxShadow 来定制我们的容器。

Dart


CODEBLOCK_1b7dbf2e

现在,要制作一个新拟态小部件,首先小部件的颜色应与背景颜色相同。小部件与背景的分离感是通过 INLINECODE6179e500 的 INLINECODEff5cb433 参数创建的。为了创建这种设计,让我们假设应用左上角是光源。当光线照射到我们的容器上时,左上角将直接面向光源,而右下角将背向光源。这意味着我们必须为左上角选择浅色调阴影,而为右下角选择背景色的深色调阴影。基于这个逻辑,我们将为容器添加阴影。在 blurRadius 的帮助下,我们可以控制阴影的模糊程度。

Dart


CODEBLOCK_915f2a0a

> 注意: 这里的 Offset(+ve, +ve) 表示右下角方向,而 Offset(-ve, -ve) 表示左上角方向,用于定位阴影。

完整代码:

Dart


import ‘package:flutter/material.dart‘;

void main() {

runApp(const MyApp());

}

class MyApp extends StatelessWidget {

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

@override

Widget build(BuildContext context) {

return MaterialApp(

home: const NeumorphicDesign(),

);

}

}

class NeumorphicDesign extends StatelessWidget {

const NeumorphicDesign({Key? key}) : super(key: key);

@override

Widget build(BuildContext context) {

return Scaffold(

body: Container(

height: 200,

width: 200,

padding: EdgeInsets.all(8)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/52978.html
点赞
0.00 平均评分 (0% 分数) - 0