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
属性可以是图标的 name
或 Icons
类的一个成员。访问 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 Icons 或 Google Fonts 中找到您要使用的图标,并尝试使用 Icons.iconName
访问它。
注意:如果图标名称以数字开头,请在输入图标名称前使用美元符号 ($
)。
例如:如果图标名称是 10k
,则可以使用 Icons.$10k
访问它。这是因为 Dart 不允许变量名以数字开头。
某些其他图标可能以美元符号 ($
) 结尾,因为它们的全名是 Dart 中的保留关键字,比如 try
图标将是 try$
。
Styles
Icon
类的 styles
属性是一个 jaspr
Styles
类,允许您传递自定义 CSS 样式到图标。
注意:当设置了 Styles
属性时,它会覆盖图标的其他样式属性,如 size
、colour
和 lineHeight
。
示例代码
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
更多关于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,
),
),
);
}
}
解释
-
CustomMaterialButton 类:这是一个自定义的Material风格按钮,它继承自
StatelessWidget
。你可以通过构造函数传递按钮的文本、点击事件处理函数、背景颜色和文本颜色。 -
ElevatedButton:在
build
方法中,我们使用ElevatedButton
来创建按钮,并通过ButtonStyle
来自定义按钮的样式,包括背景颜色、前景颜色(文本颜色)和形状(圆角矩形)。 -
MyApp 和 MyHomePage 类:这些是Flutter应用的主要组成部分。
MyApp
是应用的入口,它包含了一个MaterialApp
。MyHomePage
是应用的首页,它包含一个居中的自定义按钮。 -
SnackBar:当按钮被点击时,显示一个SnackBar作为反馈。
这个示例展示了如何创建一个自定义的Material风格按钮并在Flutter应用中使用它。如果你有一个实际的jaspr_material
插件,使用方式可能会略有不同,但基本的组件创建和使用逻辑是类似的。你需要参考该插件的文档来了解具体的API和使用方法。