Flutter自定义Material风格组件插件jaspr_material的使用

Flutter 自定义 Material 风格组件插件 jaspr_material 的使用

安装 💻

❗ 在开始使用 jaspr_material 前,必须在您的机器上安装 Dart SDK。

通过以下命令安装:

dart pub add jaspr_material

使用 🚀

在您的 Document 中的 <head> 部分添加以下代码以包含 Material 图标样式表。

link(
  href: 'https://fonts.googleapis'
      '.com/css?family=Material+Icons|Material+Icons+Outlined'
      '|Material+Icons+Two+Tone|Material+Icons+Round|Material+'
      'Icons+Sharp',
  rel: 'stylesheet',
)

添加样式表后,您可以开始使用 Icon 类来显示 Material 图标。

import 'package:jaspr_material/jaspr_material.dart';

Icon(
    Icons.language,
    styles: Styles.combine([Styles.flexbox(alignItems: AlignItems.baseline)]),
),

Icon.outlined(
    Icons.language,
    size: Unit.pixels(20),
    colour: Colors.red,
),

Icon

Icon 类是一个 jaspr 组件,用于创建 Material 图标。

属性
  • size - 图标的大小。
  • colour - 图标的颜色。
  • iconData - 您要显示的图标。
  • iconType - 您要显示的图标类型。您也可以使用命名构造函数。参见 Variations 获取更多信息。
  • lineHeight - 图标的行高。
  • styles - 图标的样式。

iconData 属性可以是图标的 nameIcons 类的一个成员。访问 Google Fonts 并选择您喜欢的任何图标,这将向您展示它的 name。现在您可以输入其名称作为 iconData,或者使用 Icons.iconName 来查找您的图标。

查看 Icons 部分获取更多信息。

变体

Icon() 构造函数为您提供一个填充的 Material 图标,这是默认的 Material 图标样式。该库还提供了其他样式的 Material 图标,包括:

  • Icon.rounded
  • Icon.sharp
  • Icon.outlined
  • Icon.twoToned

您可以使用这些构造函数,或者仍然使用默认的 Icon() 构造函数并设置 iconType 属性为任何您想要的类型,形式为一个 String


Icons

支持的 Material Icons 的标识符。

您可以像 Icons.adb 这样使用它们。只需从 Material IconsGoogle Fonts 中找到您要使用的图标,并尝试使用 Icons.iconName 访问它。

注意:如果图标名称以数字开头,请在输入图标名称前使用美元符号 ($)。

例如:如果图标名称是 10k,则可以使用 Icons.$10k 访问它。这是因为 Dart 不允许变量名以数字开头。

某些其他图标可能以美元符号 ($) 结尾,因为它们的全名是 Dart 中的保留关键字,比如 try 图标将是 try$


Styles

Icon 类的 styles 属性是一个 jaspr Styles 类,允许您传递自定义 CSS 样式到图标。

注意:当设置了 Styles 属性时,它会覆盖图标的其他样式属性,如 sizecolourlineHeight


示例代码

import 'package:jaspr/server.dart';
import 'package:jaspr/ui.dart' hide Document;
import 'package:jaspr_material/jaspr_material.dart';

void main() {
  Jaspr.initializeApp();

  runApp(
    Document(
      title: 'Title',
      head: [
        link(
          href: 'https://fonts.googleapis'
              '.com/css?family=Material+Icons|Material+Icons+Outlined'
              '|Material+Icons+Two+Tone|Material+Icons+Round|Material+'
              'Icons+Sharp',
          rel: 'stylesheet',
        ),
      ],
      styles: [],
      body: DomComponent(
        tag: 'body',
        styles: const Styles.background(color: Color.named('#101118')),
        child: App(),
      ),
    ),
  );
}

[@client](/user/client)
class App extends StatelessComponent {
  [@override](/user/override)
  Iterable<Component> build(BuildContext context) sync* {
    yield const Column(
      children: [
        Icon(
          Icons.language,
          styles: Styles.combine(
            [
              Styles.flexbox(alignItems: AlignItems.baseline),
              Styles.text(color: Color.named('#fff')),
            ],
          ),
        ),
        Icon.outlined(Icons.phone, size: Unit.pixels(20), colour: Colors.red),
      ],
    );
  }
}

更多关于Flutter自定义Material风格组件插件jaspr_material的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义Material风格组件插件jaspr_material的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用自定义Material风格组件插件jaspr_material的一个示例。由于jaspr_material是一个假定的插件名称(实际上在Flutter社区中并没有一个名为jaspr_material的官方或广泛使用的插件),我将提供一个假设性的示例,展示如何创建一个自定义Material风格组件并在Flutter中使用它。

首先,假设我们有一个自定义的Material风格按钮组件,我们可以将其封装为一个Flutter插件。为了简单起见,这里直接在项目中创建这个组件,而不是作为一个独立的插件。

步骤 1: 创建自定义按钮组件

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

class CustomMaterialButton extends StatelessWidget {
  final String text;
  final VoidCallback onPressed;
  final Color color;
  final Color textColor;

  const CustomMaterialButton({
    Key? key,
    required this.text,
    required this.onPressed,
    this.color = Colors.blue,
    this.textColor = Colors.white,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      style: ButtonStyle(
        backgroundColor: MaterialStateProperty.all(color),
        foregroundColor: MaterialStateProperty.all(textColor),
        shape: MaterialStateProperty.all(
          RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(18.0),
          ),
        ),
      ),
      onPressed: onPressed,
      child: Text(text),
    );
  }
}

步骤 2: 在主应用中使用自定义按钮组件

// main.dart
import 'package:flutter/material.dart';
import 'custom_material_button.dart'; // 导入自定义按钮组件

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Custom Material Button Demo'),
      ),
      body: Center(
        child: CustomMaterialButton(
          text: 'Click Me',
          onPressed: () {
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('Button Clicked!')),
            );
          },
          color: Colors.green,
          textColor: Colors.white,
        ),
      ),
    );
  }
}

解释

  1. CustomMaterialButton 类:这是一个自定义的Material风格按钮,它继承自StatelessWidget。你可以通过构造函数传递按钮的文本、点击事件处理函数、背景颜色和文本颜色。

  2. ElevatedButton:在build方法中,我们使用ElevatedButton来创建按钮,并通过ButtonStyle来自定义按钮的样式,包括背景颜色、前景颜色(文本颜色)和形状(圆角矩形)。

  3. MyApp 和 MyHomePage 类:这些是Flutter应用的主要组成部分。MyApp是应用的入口,它包含了一个MaterialAppMyHomePage是应用的首页,它包含一个居中的自定义按钮。

  4. SnackBar:当按钮被点击时,显示一个SnackBar作为反馈。

这个示例展示了如何创建一个自定义的Material风格按钮并在Flutter应用中使用它。如果你有一个实际的jaspr_material插件,使用方式可能会略有不同,但基本的组件创建和使用逻辑是类似的。你需要参考该插件的文档来了解具体的API和使用方法。

回到顶部