Flutter插件shammo的介绍使用
Flutter插件shammo的介绍使用
本文将介绍如何使用shammo
插件,该插件包含许多开发者在构建应用程序时通常需要的功能和组件。这些组件包括使代码更简洁的函数以及简化常见小部件实现的工具。
Utilities
这些是可以在整个应用程序中使用的实用函数列表。
MediaQuery
可以通过调用链的最后一个方法来访问任何MediaQuery
。例如:
// 访问屏幕高度
MediaQuery.of(context).size.height;
// 使用简化的方法
height(context);
// 或者访问完整的 MediaQuery 类
mediaQuery(context);
Theme
可以通过调用链的最后一个方法来访问与主题相关的功能。例如:
// 访问 bodyText1 方法
bodyText1(context);
// 替代方式
Theme.of(context).textTheme.bodyText1;
// 访问主题本身
theme(context);
// 访问文本主题
textTheme(context);
// 访问图标主题
iconTheme(context);
// 访问颜色
cardColor(context);
canvasColor(context);
Navigator
可以通过调用链的最后一个方法来处理导航功能。例如:
// 弹出当前路由
pop(context);
// 替代方式
if (Navigator.maybeOf(context) != null && Navigator.of(context).mounted) {
if (Navigator.of(context).canPop()) {
Navigator.of(context).pop();
}
}
// 推入新路由
push(context, HomePage());
// 替代方式
if (Navigator.maybeOf(context) != null && Navigator.of(context).mounted) {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => HomePage()),
);
}
// 关闭默认的适应性路由行为
push(context, HomePage(), adaptive: false);
其他实用函数
以下是一些其他实用函数:
showSnackBar(context, "Hey there");
openDialog(
context,
Text("Delete"),
Text("Are you sure you want to deleted?"),
actions: [
ElevatedButton(child: Text("Yes")),
ElevatedButton(child: Text("No")),
],
);
closeDialog(context);
removeSnackbar(context);
generateColor("text", "#ffe");
getTheme(context).cardColor;
getMedia(context).padding;
commaSeperatedNumber(100000);
toDouble(number);
toInt(number);
copy(context, text);
convertToColor("#fes");
getColorCode("1d34a1");
confirmAction(
context,
confirm: "Delete",
onConfirm: () => list.removeAt(0),
);
showSnackBar(context, "Done");
percentageCalculator(14023, 20);
Components
以下是插件提供的各种组件示例。
Badge
用于创建徽章:
Badge(
child: Icon(Icons.bell),
badge: Text("10+"),
badgeColor: Colors.red,
)
ContainerButton
用于创建一个完全可点击的容器,带有图标:
ContainerButton(
body: Text("Click"),
action: IconButton(
icon: Icon(Icons.add),
onPressed: () {},
),
)
PostCard
用于创建一个可以用于展示帖子的卡片:
PostCard(
title: Text("Seth's Post"),
action: IconButton(
icon: Icon(Icons.more_vert),
onPressed: () {},
),
content: Text("Seth is awesome"),
avatar: CircleAvatar(
backgroundImage: NetworkImage("https://seth.com/dp"),
),
actions: [
IconButton(
onPressed: () {},
icon: Icon(Icons.thumb_up),
),
IconButton(
onPressed: () {},
icon: Icon(Icons.comment),
),
],
)
Carousel
用于创建漂亮的轮播图:
Carousel(
onTap: () {},
aspectRatio: 16 / 8,
items: [
Image.asset("assets/images/img.png"),
Image.asset("assets/images/img1.png"),
Image.asset("assets/images/img2.png"),
],
)
MaterialRadio
用于创建单选按钮:
MaterialRadio(
color: Colors.blue,
onChange: () {},
)
CountDown
用于创建倒计时(单位为秒):
CountDown(
duration: 60,
)
MenuButton
用于创建带有前导和后置图标的按钮:
MenuButton(
header: Text("Scan QR Code"),
description: Text("Use this to Scan QRCodes"),
route: QRCodePage(),
leading: Icons.qrcode,
)
CustomTextField
用于轻松创建文本输入框:
CustomTextField(
label: Text("Name"),
hint: "First name",
border: OutlineInputBorder(),
)
MaterialCard
用于创建一个带有头像、标题等的卡片:
MaterialCard(
title: Text("Name"),
avatar: Image.network(url),
decoration: BoxDecoration(color: Colors.white),
content: Carousel(
onTap: () {},
aspectRatio: 16 / 8,
items: [
Image.asset("assets/images/img.png"),
Image.asset("assets/images/img1.png"),
Image.asset("assets/images/img2.png"),
],
),
)
示例代码
以下是一个完整的示例代码,展示了如何使用shammo
插件中的PostCard
组件:
import 'package:flutter/material.dart';
import 'package:shammo/shammo.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("PostCard Example"),
),
body: Center(
child: PostCard(
title: Text("Seth's Post"),
action: IconButton(
icon: Icon(Icons.more_vert),
onPressed: () {},
),
content: Text("Seth is awesome"),
avatar: CircleAvatar(
backgroundImage: NetworkImage("https://seth.com/dp"),
),
actions: [
IconButton(
onPressed: () {},
icon: Icon(Icons.thumb_up),
),
IconButton(
onPressed: () {},
icon: Icon(Icons.comment),
),
],
),
),
),
);
}
}
更多关于Flutter插件shammo的介绍使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html