Flutter屏幕调试插件onscreen_ui_debugger的使用
Flutter屏幕调试插件onscreen_ui_debugger的使用
特性
Onscreen Ui Debugger可以在几行简单的代码中创建屏幕上的日志。
开始使用
在 pubspec.yaml
文件中添加该包,并检查以下代码。
使用方法
将以下代码添加到您的 MaterialApp
中。
builder: (context, child) {
return Stack(
children: [
child ?? Container(),
Overlay(
initialEntries: [
OverlayEntry(
builder: (context) => const DebugWidget(),
),
],
),
],
);
},
在添加上述代码后,您的 MaterialApp
应该如下所示:
MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
//----------更改开始于此----------
builder: (context, child) {
return Stack(
children: [
child ?? Container(),
Overlay(
initialEntries: [
OverlayEntry(
builder: (context) => const DebugWidget(),
),
],
),
],
);
},
//----------更改结束于此----------
home: const MyHomePage(title: 'Flutter Demo Home Page'),
)
日志格式
以下是记录日志的格式:
DebugLog debugLog = DebugLog(logTitle: "登录 REST API", dateTime: DateTime.now());
debugLog.logStrings.add(DebugLogString(logTitle: "登录请求", logsDescription: "{mobile:'9496699210'}"));
debugLog.logStrings.add(DebugLogString(logTitle: "响应", logsDescription: '{message:'success'}'));
debugLog.setAsBlue(); // 设置标题颜色为蓝色
DebugUtils.debugLogBloc.addDebugLog(debugLog);
额外信息
如有更多问题,请发送邮件至 nikhilishwar2@gmail.com。我们欢迎更多的贡献者加入此项目。
完整示例代码
import 'package:flutter/material.dart';
import 'package:onscreen_ui_debugger/debug_helper/debug_log_bloc.dart';
import 'package:onscreen_ui_debugger/debug_helper/debug_utilities.dart';
import 'package:onscreen_ui_debugger/debug_helper/debug_widget.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 Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
builder: (context, child) {
return Stack(
children: [
child ?? Container(),
Overlay(
initialEntries: [
OverlayEntry(
builder: (context) => const DebugWidget(),
),
],
),
],
);
},
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
DebugLog debugLog =
DebugLog(logTitle: "计数器日志", dateTime: DateTime.now());
debugLog.logStrings.add(DebugLogString(
logTitle: "递增前", logsDescription: _counter.toString()));
_counter++;
debugLog.logStrings.add(DebugLogString(
logTitle: "递增后", logsDescription: _counter.toString()));
(_counter % 2 == 0) ? debugLog.setAsSad() : debugLog.setAsBlue();
DebugUtils.debugLogBloc.addDebugLog(debugLog);
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'你已经点击了按钮这么多次:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: '增加',
child: const Icon(Icons.add),
), // 这个逗号使自动格式化更美观。
);
}
}
更多关于Flutter屏幕调试插件onscreen_ui_debugger的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter屏幕调试插件onscreen_ui_debugger的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
onscreen_ui_debugger
是一个用于 Flutter 的屏幕调试插件,它可以帮助开发者在应用运行时直接在屏幕上显示调试信息,比如层次结构、布局边界、渲染性能等。这个工具对于快速定位 UI 问题和优化布局非常有帮助。
安装 onscreen_ui_debugger
要使用 onscreen_ui_debugger
,首先需要将其添加到你的 Flutter 项目中。
-
在
pubspec.yaml
中添加依赖:dependencies: flutter: sdk: flutter onscreen_ui_debugger: ^1.0.0 # 请使用最新的版本号
-
运行
flutter pub get
来安装依赖。
使用 onscreen_ui_debugger
-
导入插件:
在你的 Dart 文件中导入
onscreen_ui_debugger
:import 'package:onscreen_ui_debugger/onscreen_ui_debugger.dart';
-
启用调试工具:
你可以通过调用
OnScreenDebugger.enable()
来启用调试工具。通常,你可以在main
函数中调用它:void main() { OnScreenDebugger.enable(); runApp(MyApp()); }
-
查看调试信息:
启用调试工具后,你可以通过以下方式来查看各种调试信息:
- 显示 Widget 边界:在屏幕上显示每个 Widget 的边界,帮助你了解布局结构。
- 显示图层信息:显示每个 Widget 的图层信息,帮助识别重绘和布局问题。
- 显示性能信息:在屏幕上显示应用的性能数据,如帧率等,帮助优化应用性能。
你可以通过以下方法来控制调试信息的显示:
OnScreenDebugger.showWidgetBounds(true); // 显示 Widget 边界 OnScreenDebugger.showLayerInfo(true); // 显示图层信息 OnScreenDebugger.showPerformance(true); // 显示性能信息
-
自定义调试信息:
你还可以通过
OnScreenDebugger
在屏幕上显示自定义的调试信息:OnScreenDebugger.addMessage('这是一个自定义的调试信息');
-
禁用调试工具:
如果你需要禁用它,可以调用
OnScreenDebugger.disable()
:OnScreenDebugger.disable();
注意事项
onscreen_ui_debugger
主要用于调试和开发阶段,不要在发布模式(Release Mode)下使用它,因为它会影响应用的性能。- 调试信息可能会覆盖部分 UI,因此在调试完成后,记得禁用调试工具。
示例代码
以下是一个简单的示例,展示如何在 Flutter 应用中使用 onscreen_ui_debugger
:
import 'package:flutter/material.dart';
import 'package:onscreen_ui_debugger/onscreen_ui_debugger.dart';
void main() {
OnScreenDebugger.enable();
OnScreenDebugger.showWidgetBounds(true);
OnScreenDebugger.showPerformance(true);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('OnScreen UI Debugger Example'),
),
body: Center(
child: Text('Hello, Flutter!'),
),
),
);
}
}