Flutter微信按钮集成插件wx_button的使用
Flutter微信按钮集成插件wx_button的使用
本插件用于增强Flutter中的按钮功能,使开发者能够更直观地控制按钮的样式和主题。通过解耦按钮外观与底层平台,开发者可以更容易地定制按钮以符合特定的设计需求和品牌标识。
使用
请参阅 示例代码。
更多关于类和引用的信息,请参阅 API文档。
示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中集成并使用 wx_button
插件。
import 'package:flutter/material.dart';
import 'package:theme_patrol/theme_patrol.dart';
import 'package:wx_button/wx_button.dart';
import 'package:wx_button_example/sample_align.dart';
import 'package:wx_button_example/sample_appearance.dart';
import 'package:wx_button_example/sample_block.dart';
import 'package:wx_button_example/sample_compound.dart';
import 'package:wx_button_example/sample_disabled.dart';
import 'package:wx_button_example/sample_driven.dart';
import 'package:wx_button_example/sample_icon.dart';
import 'package:wx_button_example/sample_severity.dart';
import 'package:wx_button_example/sample_gradient.dart';
import 'package:wx_text/wx_text.dart';
import 'theme_picker.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
// 定义不同主题
return ThemePatrol(
themes: {
'm2': ThemeConfig.withMode(
description: 'Material 2',
light: ThemeData.light(useMaterial3: false),
dark: ThemeData.dark(useMaterial3: false),
extensionsBuilder: [
(context) => WxButtonThemeM2(context),
(context) => WxIconButtonThemeM2(context),
],
),
'm3': ThemeConfig.withMode(
description: 'Material 3',
light: ThemeData.light(useMaterial3: true),
dark: ThemeData.dark(useMaterial3: true),
extensionsBuilder: [
(context) => WxButtonThemeM3(context),
(context) => WxIconButtonThemeM3(context),
],
),
'ios': ThemeConfig.withMode(
description: 'iOS',
light: ThemeData.light(useMaterial3: false),
dark: ThemeData.dark(useMaterial3: false),
extensionsBuilder: [
(context) => WxButtonThemeIOS(context),
(context) => WxIconButtonThemeIOS(context),
],
),
},
initialTheme: 'm2', // 初始主题为 Material 2
builder: (context, theme, child) {
return MaterialApp(
title: 'WxButton Demo',
theme: theme.lightData,
darkTheme: theme.darkData,
themeMode: theme.mode,
home: const MyHomePage(),
builder: theme.bootstrap(),
);
},
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return const Scaffold(
body: SingleChildScrollView(
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 40),
WxText.displayMedium(
'WxButton',
gradient: LinearGradient(
colors: [
Colors.green,
Colors.blue,
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
fontWeight: FontWeight.bold,
letterSpacing: -2,
),
SizedBox(height: 10),
ThemePicker(), // 主题选择器
SizedBox(height: 40),
SampleAppearance(), // 样式展示
SizedBox(height: 20),
SampleDisabled(), // 禁用状态
SizedBox(height: 20),
SampleSeverity(), // 严重性
SizedBox(height: 20),
SampleCompound(), // 复合按钮
SizedBox(height: 20),
SampleIcon(), // 带图标的按钮
SizedBox(height: 20),
SampleBlock(), // 区块按钮
SizedBox(height: 20),
SampleAlign(), // 对齐方式
SizedBox(height: 20),
SampleDriven(), // 控制驱动
SizedBox(height: 20),
SampleGradient(), // 渐变效果
SizedBox(height: 40),
],
),
),
),
);
}
}
更多关于Flutter微信按钮集成插件wx_button的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复