Flutter UI组件库插件flutter_ukit的使用
Flutter UI组件库插件flutter_ukit的使用
Flutter UKit
Flutter UKit 是一个包含可重用且易于使用的UI组件、模板、样式、资源和其他有用的数字资产的大集合,可用于创建用户界面设计。
开始使用
本项目是一个Flutter插件包的起点,它包括针对Android和/或iOS的平台特定实现代码。
对于开始Flutter开发的帮助,可以查看在线文档,其中提供了教程、示例、移动开发指南和完整的API参考。
可用功能
以下是当前可用的功能列表:
功能 | 状态 |
---|---|
字体样式 | ✔️ |
容器 | ✔️ |
微光加载 | ✔️ |
按钮 | ✔️ |
对话框 | ✔️ |
表单控件 | ✔️ |
复选框 | ✔️ |
单选按钮 | ✔️ |
选择器 | ✔️ |
下拉选项 | ✔️ |
动画 | 🚧 |
更多示例
请查看example
文件夹以获取更多代码示例。
示例代码
以下是一个完整的示例代码,展示了如何使用Flutter UKit来构建一个简单的用户界面。
import 'package:flutter/material.dart';
import 'screen/animation_screen.dart';
import 'screen/dropdown_screen.dart';
import 'screen/picker_screen.dart';
import 'screen/checkbox_screen.dart';
import 'screen/radio_button_screen.dart';
import 'screen/button_screen.dart';
import 'screen/container_screen.dart';
import 'screen/dialog_screen.dart';
import 'screen/form_screen.dart';
import 'screen/shimmer_screen.dart';
import 'screen/typography_screen.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter UI Kit',
theme: ThemeData(
useMaterial3: false,
),
home: const HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Flutter UKit'),
),
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
const UserAccountsDrawerHeader(
accountName: Text(
'Flutter UKit',
),
accountEmail: Text(
'version 0.0.2',
),
currentAccountPicture: CircleAvatar(
child: FlutterLogo(size: 42.0),
),
),
ExpansionTile(
title: const Text("Contents"),
leading: const Icon(Icons.content_copy),
childrenPadding: const EdgeInsets.only(left: 60),
children: [
ListTile(
title: const Text('字体样式'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const TypographyScreen(),
),
);
},
),
ListTile(
title: const Text('容器'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ContainerScreen(),
),
);
},
),
ListTile(
title: const Text('微光加载'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ShimmerScreen(),
),
);
},
),
ListTile(
title: const Text('动画'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const AnimationScreen(),
),
);
},
),
],
),
ExpansionTile(
title: const Text("组件"),
leading: const Icon(Icons.widgets),
childrenPadding: const EdgeInsets.only(left: 60),
children: [
ListTile(
title: const Text('按钮'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ButtonScreen(),
),
);
},
),
ListTile(
title: const Text('对话框'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const DialogScreen(),
),
);
},
),
],
),
ExpansionTile(
title: const Text("表单"),
leading: const Icon(Icons.layers_outlined),
childrenPadding: const EdgeInsets.only(left: 60),
children: [
ListTile(
title: const Text('表单控件'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const FormScreen(),
),
);
},
),
ListTile(
title: const Text('下拉选项'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const DropdownScreen(),
),
);
},
),
ListTile(
title: const Text('复选框'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const CheckboxScreen(),
),
);
},
),
ListTile(
title: const Text('单选按钮'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const RadioButtonScreen(),
),
);
},
),
ListTile(
title: const Text('选择器'),
trailing: const Icon(Icons.arrow_forward_ios, size: 18),
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const PickerScreen(),
),
);
},
),
],
),
],
),
),
body: Center(
child: Column(
children: [
const Padding(
padding: EdgeInsets.all(30.0),
child: Text(
'Flutter UKit 是一个包含可重用且易于使用的UI组件、模板、样式、资源和其他有用的数字资产的大集合,可用于创建用户界面设计。',
style: TextStyle(fontSize: 16.0),
textAlign: TextAlign.center,
),
),
Container(
margin: const EdgeInsets.symmetric(horizontal: 20),
child: Table(
defaultVerticalAlignment: TableCellVerticalAlignment.middle,
border: TableBorder.all(
color: Colors.black,
style: BorderStyle.solid,
width: 1,
),
children: const [
TableRow(
decoration: BoxDecoration(color: Colors.blue),
children: [
Text(
'功能',
style: TextStyle(
fontWeight: FontWeight.bold, color: Colors.white),
textAlign: TextAlign.center,
),
Text(
'状态',
style: TextStyle(
fontWeight: FontWeight.bold, color: Colors.white),
textAlign: TextAlign.center,
),
],
),
// TableRow(children: [
// Column(children: [Text('Javatpoint')]),
// Column(children: [Text('Flutter')]),
// Column(children: [Text('5*')]),
// ]),
],
),
),
],
),
),
);
}
}
更多关于Flutter UI组件库插件flutter_ukit的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter UI组件库插件flutter_ukit的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_ukit
是一个 Flutter UI 组件库插件,提供了丰富的 UI 组件,可以帮助开发者快速构建美观的应用程序。以下是如何使用 flutter_ukit
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 flutter_ukit
的依赖。
dependencies:
flutter:
sdk: flutter
flutter_ukit: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入包
在你的 Dart 文件中导入 flutter_ukit
包:
import 'package:flutter_ukit/flutter_ukit.dart';
3. 使用组件
flutter_ukit
提供了多种 UI 组件,以下是一些常用的组件及其使用方法:
3.1 UKitButton
UKitButton
是一个自定义按钮组件,支持多种样式。
UKitButton(
onPressed: () {
print('Button Pressed');
},
text: 'Click Me',
color: Colors.blue,
textColor: Colors.white,
)
3.2 UKitTextField
UKitTextField
是一个自定义的文本输入框组件。
UKitTextField(
hintText: 'Enter your text',
onChanged: (value) {
print('Text changed: $value');
},
)
3.3 UKitCard
UKitCard
是一个自定义卡片组件,支持阴影和圆角。
UKitCard(
child: Text('This is a card'),
elevation: 5,
borderRadius: BorderRadius.circular(10),
)
3.4 UKitAlertDialog
UKitAlertDialog
是一个自定义的对话框组件。
UKitAlertDialog(
title: 'Alert',
content: 'This is an alert dialog.',
actions: [
UKitButton(
onPressed: () {
Navigator.pop(context);
},
text: 'OK',
),
],
)
3.5 UKitProgressIndicator
UKitProgressIndicator
是一个自定义的进度指示器。
UKitProgressIndicator(
color: Colors.blue,
size: 50,
)
4. 自定义主题
flutter_ukit
允许你自定义主题来统一应用的外观。
UKitTheme(
data: UKitThemeData(
primaryColor: Colors.blue,
accentColor: Colors.green,
buttonTheme: UKitButtonThemeData(
borderRadius: BorderRadius.circular(8),
textColor: Colors.white,
),
),
child: YourApp(),
)
5. 完整示例
以下是一个完整的示例,展示了如何使用 flutter_ukit
中的一些组件:
import 'package:flutter/material.dart';
import 'package:flutter_ukit/flutter_ukit.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return UKitTheme(
data: UKitThemeData(
primaryColor: Colors.blue,
accentColor: Colors.green,
buttonTheme: UKitButtonThemeData(
borderRadius: BorderRadius.circular(8),
textColor: Colors.white,
),
),
child: MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter UKit Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
UKitButton(
onPressed: () {
print('Button Pressed');
},
text: 'Click Me',
),
SizedBox(height: 20),
UKitTextField(
hintText: 'Enter your text',
onChanged: (value) {
print('Text changed: $value');
},
),
SizedBox(height: 20),
UKitCard(
child: Text('This is a card'),
elevation: 5,
borderRadius: BorderRadius.circular(10),
),
],
),
),
),
),
);
}
}