布局边界未在 Flutter 应用程序中显示,但在其他应用程序中显示
Posted
技术标签:
【中文标题】布局边界未在 Flutter 应用程序中显示,但在其他应用程序中显示【英文标题】:Layout bounds not showing in Fultter app but it shows for other apps 【发布时间】:2019-07-16 05:24:55 【问题描述】:我刚开始使用颤振并使用默认配置创建了一个空白应用程序,当我从开发人员选项中打开显示布局边界时,它没有像任何其他应用程序那样显示任何边界。
这是怎么回事?
【问题讨论】:
看看Flutter visual debugging和Flutter widget inspector。 在颤动中,一切都是小部件。 Widget 渲染由 Flutter 中的 ObjectRender 处理。您无法获取小部件在屏幕上的大小或位置,因为小部件就像一个蓝图,它实际上并不在屏幕上。它只是对底层渲染对象应该使用哪些变量的描述。 @FirzanShaikh能否解释一下flutter如何渲染android布局边界无法识别任何布局的布局? 【参考方案1】:要从 Flutter 应用的开发者选项中显示 布局边界,我们必须这样做
将此包导入main.dart
类。
import 'package:flutter/rendering.dart';
在build()
或main()
中,您必须将此debugPaintSizeEnabled
变量设置为true
。
debugPaintSizeEnabled = true;
示例:这是我的完整课程
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main()
runApp(MyApp());
class MyApp extends StatelessWidget
// This widget is the root of your application.
@override
Widget build(BuildContext context)
debugPaintSizeEnabled = true;
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
class MyHomePage extends StatefulWidget
MyHomePage(Key key, this.title) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
class _MyHomePageState extends State<MyHomePage>
int _counter = 0;
void _incrementCounter()
setState(()
_counter++;
);
@override
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
【讨论】:
这正是我想要的。 完美。它节省了我很多时间。谢谢。以上是关于布局边界未在 Flutter 应用程序中显示,但在其他应用程序中显示的主要内容,如果未能解决你的问题,请参考以下文章