Flutter自定义按钮插件main_button的使用
Flutter自定义按钮插件main_button的使用
概述
MainButton
是一个灵活且可定制的按钮组件,适用于Flutter应用程序。它支持多种样式和行为,如不同的按钮状态、自定义文本、图标、图片和颜色方案。你可以轻松创建带有加载指示器、阴影和禁用状态等特性的按钮。
特性
- 主要、次要和第三类按钮:支持三种预定义的按钮类型(
MainButtonEnum
),每种都有默认样式。 - 文本、图标和图片支持:按钮可以显示文本、图标或图片,提供了设计灵活性。
- 高度可定制:提供广泛的定制选项,如按钮大小、填充、颜色、圆角半径等。
- 加载和禁用状态:内置支持加载指示器和禁用状态。
- 凸起或扁平风格:可以根据设计需求选择是否给按钮添加阴影效果。
安装
-
在你的
pubspec.yaml
文件中添加以下依赖:dependencies: main_button: <latest_version>
-
为了处理响应式布局,在你的应用入口处初始化:
class MyApp extends StatelessWidget { const MyApp({super.key}); [@override](/user/override) Widget build(BuildContext context) { // 这一步非常重要 MainWidgetsUtil.init( context, designSize: const Size(375, 812), minTextAdapt: true, ); return MaterialApp( home: const HomeScreen(), ); } }
属性
以下是 MainButton
的一些常用属性:
属性名 | 类型 | 描述 |
---|---|---|
width | double? | 按钮宽度,默认为 double.infinity 。 |
height | double | 按钮高度,默认值为 44 。 |
padding | EdgeInsets? | 按钮内部填充。 |
borderRadius | double | 圆角半径,默认值为 8 。 |
onPressed | VoidCallback? | 点击按钮时的回调函数。 |
label | String | 显示在按钮上的文本标签。 |
backgroundColor | Color? | 按钮背景颜色。 |
textColor | Color? | 文本颜色。 |
disableColor | Color? | 禁用时的颜色。 |
isLoading | bool | 如果为 true ,则显示加载指示器,默认值为 false 。 |
showShadow | bool | 如果为 true ,则显示阴影效果,默认值为 true 。 |
borderColor | Color | 边框颜色。 |
smallSize | bool | 如果为 true ,则渲染较小版本的按钮。 |
isDisable | bool | 如果为 true ,则禁用按钮,默认值为 false 。 |
opacity | double? | 按钮透明度。 |
type | MainButtonEnum | 定义按钮类型:primary 、secondary 或 tertiary 。 |
使用示例
下面是如何在Flutter应用中使用 MainButton
的示例代码:
import 'package:flutter/material.dart';
import 'package:main_button/main_button.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
MainWidgetsUtil.init(
context,
designSize: const Size(375, 812),
minTextAdapt: true,
);
return MaterialApp(
title: 'MainButton Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('MainButton Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
MainButton(
label: "Submit",
onPressed: () {
print("Button Pressed");
},
),
SizedBox(height: 20),
MainButton.icon(
label: "Send",
icon: Icons.send,
onPressed: () {
print("Icon Button Pressed");
},
backgroundColor: Colors.green,
textColor: Colors.white,
),
],
),
),
),
);
}
}
更多关于Flutter自定义按钮插件main_button的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复