Flutter快速面板控制插件fastboard_flutter的使用
Flutter快速面板控制插件fastboard_flutter的使用
快速入门
Agora Fastboard SDK 是由 Agora 推出的一款用于帮助开发者快速构建白板应用程序的新一代白板 SDK。它简化了白板 SDK 的 API 并添加了 UI 实现。这些改进使你只需几行代码即可加入房间,并立即体验使用各种丰富的编辑工具进行实时互动协作。
主要特性包括:
- 低成本
- 针对场景优化
- 可配置性
前提条件
在开始之前,请确保满足以下条件:
开始使用
在你的 Flutter 项目中添加依赖项:
dependencies:
fastboard_flutter: ^0.1.2
使用说明
你可以通过克隆此仓库并运行示例来开始使用。主要的示例代码位于 quick_start.dart
和 custom_layout.dart
。
使用 FastRoomView
首先,在你的 Flutter 项目中嵌入 FastRoomView
组件。
[@override](/user/override)
Widget build(BuildContext context) {
return FastRoomView(
fastRoomOptions: FastRoomOptions(
appId: APP_ID,
uuid: ROOM_UUID,
token: ROOM_TOKEN,
uid: UNIQUE_CLIENT_ID,
writable: true,
fastRegion: FastRegion.cn_hz,
),
);
}
切换暗模式
Fastboard 提供了一套内置的暗模式配置,你可以通过配置 FastRoomView.useDarkTheme
来切换暗模式和亮模式。
[@override](/user/override)
Widget build(BuildContext context) {
return FastRoomView(
fastRoomOptions: FastRoomOptions(
appId: APP_ID,
uuid: ROOM_UUID,
token: ROOM_TOKEN,
uid: UNIQUE_CLIENT_ID,
writable: true,
fastRegion: FastRegion.cn_hz,
),
useDarkTheme: true,
);
}
你也可以通过 FastRoomView.theme
和 FastRoomView.darkTheme
来更改内置控件的颜色。
[@override](/user/override)
Widget build(BuildContext context) {
return FastRoomView(
fastRoomOptions: FastRoomOptions(
appId: APP_ID,
uuid: ROOM_UUID,
token: ROOM_TOKEN,
uid: UNIQUE_CLIENT_ID,
writable: true,
fastRegion: FastRegion.cn_hz,
),
theme: FastThemeData.light().copyWith(mainColor: Color(0xFF00BCD4)),
darkTheme: FastThemeData.dark().copyWith(mainColor: Color(0xFF0097A7)),
useDarkTheme: true,
);
}
自定义布局
你可以隐藏或显示内置组件,或者自定义组件的布局。
[@override](/user/override)
Widget build(BuildContext context) {
return FastRoomView(
fastRoomOptions: FastRoomOptions(
appId: APP_ID,
uuid: ROOM_UUID,
token: ROOM_TOKEN,
uid: UNIQUE_CLIENT_ID,
writable: true,
fastRegion: FastRegion.cn_hz,
),
builder: customBuilder,
);
}
Widget customBuilder(BuildContext context, FastRoomController controller) {
return Stack(
alignment: Alignment.center,
children: [
FastOverlayHandlerView(controller),
Positioned(
child: FastPageIndicator(controller),
bottom: FastGap.gap_3,
right: FastGap.gap_3,
),
FastToolBoxExpand(controller),
FastStateHandlerView(controller),
],
);
}
配置工具箱项
你可以通过 FastUiSettings.toolboxItems
来配置工具箱中的工具。
void main() {
FastUiSettings.toolboxItems = [
ToolboxItem(appliances: [FastAppliance.clicker]),
ToolboxItem(appliances: [FastAppliance.selector]),
ToolboxItem(appliances: [FastAppliance.pencil]),
ToolboxItem(appliances: [FastAppliance.eraser]),
ToolboxItem(appliances: [
FastAppliance.rectangle,
FastAppliance.ellipse,
FastAppliance.straight,
FastAppliance.arrow,
FastAppliance.pentagram,
FastAppliance.rhombus,
FastAppliance.triangle,
FastAppliance.balloon,
]),
// 移除清除工具
// ToolboxItem(appliances: [FastAppliance.clear]),
];
runApp(const MyApp());
}
示例代码
以下是完整的示例代码:
import 'package:flutter/material.dart';
import 'custom_layout.dart';
import 'page.dart';
import 'quick_start.dart';
final List<FastExamplePage> _allPages = [
const QuickStartPage(),
const CustomLayoutPage(),
];
void main() {
const bool isProduction = bool.fromEnvironment('dart.vm.product');
if (isProduction) {
debugPrint = (String? message, {int? wrapWidth}) => null;
}
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('FFastboard'),
),
body: ListView.builder(
itemCount: _allPages.length,
itemBuilder: (appContext, index) => ListTile(
leading: _allPages[index].leading,
title: Text(_allPages[index].title),
onTap: () => _pushPage(appContext, _allPages[index]),
),
)
// body: _allPages[0],
),
);
}
void _pushPage(BuildContext context, FastExamplePage page) {
Navigator.of(context).push(MaterialPageRoute<void>(
builder: (_) => Scaffold(
body: page,
// 防止键盘出现时调整大小
resizeToAvoidBottomInset: false,
)));
}
}
更多关于Flutter快速面板控制插件fastboard_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter快速面板控制插件fastboard_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用fastboard_flutter
插件的示例代码案例。这个插件允许你快速创建和控制面板。为了演示起见,假设你已经有一个Flutter项目,并且已经添加了fastboard_flutter
依赖。
首先,确保在pubspec.yaml
文件中添加依赖:
dependencies:
flutter:
sdk: flutter
fastboard_flutter: ^最新版本号 # 替换为实际的最新版本号
然后运行flutter pub get
来获取依赖。
接下来,在你的Flutter项目中,你可以按照以下步骤使用fastboard_flutter
插件:
- 导入包:
import 'package:flutter/material.dart';
import 'package:fastboard_flutter/fastboard_flutter.dart';
- 定义Fastboard面板:
在你的主页面或需要显示面板的地方定义Fastboard
组件。这里是一个简单的例子:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Fastboard Flutter Example'),
),
body: Center(
child: FastboardExample(),
),
),
);
}
}
class FastboardExample extends StatefulWidget {
@override
_FastboardExampleState createState() => _FastboardExampleState();
}
class _FastboardExampleState extends State<FastboardExample> {
late FastboardController _controller;
@override
void initState() {
super.initState();
_controller = FastboardController();
// 添加一些面板项作为示例
_controller.addItem(
FastboardItem(
id: 'button1',
type: FastboardItemType.button,
title: 'Button 1',
onTap: () {
print('Button 1 tapped');
},
),
);
_controller.addItem(
FastboardItem(
id: 'slider1',
type: FastboardItemType.slider,
title: 'Slider 1',
initialValue: 50.0,
minValue: 0.0,
maxValue: 100.0,
onChanged: (double value) {
print('Slider 1 value changed to $value');
},
),
);
}
@override
Widget build(BuildContext context) {
return Fastboard(
controller: _controller,
header: Container(
height: 50,
color: Colors.blue,
child: Center(
child: Text(
'Fastboard Panel',
style: TextStyle(color: Colors.white),
),
),
),
footer: Container(
height: 50,
color: Colors.grey[300],
child: Center(
child: ElevatedButton(
onPressed: () {
// 隐藏面板
_controller.toggleVisibility();
},
child: Text('Toggle Panel'),
),
),
),
);
}
}
- 运行应用:
确保你的开发环境已经正确配置,然后运行应用。你应该会看到一个包含按钮和滑块的快速面板,点击按钮和滑动滑块会在控制台输出相应的信息。
请注意,fastboard_flutter
插件的具体API可能会有所不同,具体取决于插件的版本。因此,在实际使用时,请参考插件的官方文档以获取最新和最准确的API信息。
此外,FastboardController
、FastboardItem
等类的具体属性和方法可能会根据插件版本有所不同,因此上述代码仅为示例,实际使用时请根据插件文档进行调整。