我得到下面的异常,而在Android Studio运行flutter代码。
I/颤振(5360):══╡ WIDGETS库捕获到异常╞═══════════════════════════════════════════════════════════ I/flatter(5360):在构建文本(“xyz”)时抛出以下断言:I/flatter(5360):未找到方向性小部件。I/flatter(5360):RichText小部件需要方向性小部件。I/flatter(5360):找不到方向性祖先的特定小部件是:I/flatter(5360):RichText(软包装:框宽包装,maxLines:unlimited,text:“xyz”)I/flatter(5360):受影响小部件的所有权链是:I/flatter(5360):RichText← 文本← 居中← 容器← [root]I/flatter(5360):通常,方向性小部件由MaterialApp或WidgetsApp小部件在I/flatter(5360):应用程序小部件树顶部引入。它确定环境读数方向,并用于I/颤振(5360):例如,确定如何布局文本,如何解释“开始”和“结束”值,以及解析I/颤振(5360):EdgeInSetDirective、AlignmentDirective和其他*定向对象。
代码片段:
import 'package:flutter/material.dart';
void main() {
runApp(
Container(child: Center(child: Text("xyz"))),
);
}
我不知道为什么这个例外说
I/Flatter(5360):通常,方向性小部件由MaterialApp或WidgetsApp小部件在。。。
因为在flutter中,一切都是一个小部件,所以任何小部件都应该适合我们。
文本小部件需要知道它应该从左到右还是从右到左显示文本。没有默认设置。此信息可通过两种方式提供:
方向性
小部件中(如错误消息中所述,通常为MaterialApp
或WidgetsApp
)Text(
'Hello World',
textDirection: TextDirection.ltr,
)
从长远来看,第二种方法显然难以管理。
如果您正在使用方向性构造函数,您的问题将得到解决
Widget build(BuildContext context) {
return Directionality(
textDirection: TextDirection.ltr,
child: Container(
color: myColor,
child: Center(
child: RaisedButton(
onPressed: () {
print('You pressed me');
changeColor();
},
child: Text('Click', textDirection: TextDirection.ltr)
),
),
),
);
}
如果您正在使用材质小部件组件,如Scaffold
,material
,则不需要在Text
小部件中指定textDirection
,因为在这些情况下会隐式提供方向性。因此,一个好的解决方案是使用:
Scaffold(body: Text("xyz"))
但如果你不使用它,你将不得不
Text(
'xyz',
textDirection: TextDirection.ltr,
)
Xcode的输出:在文件中包含从 /Users/dani/development/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.3/ios/Classes/FLTURLLauncherPlugin.m: 7: /Users/dani/development/flutter/.pub-cache/hosted/pub.dart
我很熟悉flutter中的无状态和有状态小部件,但我很好奇为什么我们不将有状态小部件定义为无状态小部件?为什么我们需要声明两个不同的类,一个用于createstate方法,一个用于实际的状态实现?
我想在左边部分显示个人资料图像,中间部分显示名称和公司(一个在另一个下面),右边部分显示列表图块内的评论和评级。我能够正确显示图像,评论和评级,但文本不显示。我想实现这一点: 图片和评级之间的空白是我想要显示文本的地方(姓名和公司,一个在另一个下面)。不知道我在这里错过了什么。 下面的代码片段: 在我看来,这似乎是一个返回
我向上看了看这里和酒吧。dev和flatter文档,但找不到(或者找不到我的查询)这个简单任务的任何解决方案。 我想显示一个,其字母从上到下排列,同时保持字母方向的默认值。因此,旋转的将不起作用。 我期望的结果是: 此外,我还需要将包装到下一行(本例中为列),需要一个高度参数来限制每列从上到下的字母数。 如果最后一部分太难实现,我愿意接受单列解决方案的想法。
显然,没有一个Flutter命令在Android Studio的终端上工作,我相信我试图在我的项目的根上运行它。 产出:
我试图添加一些填充的顶部和底部的一些文字和图标在一个卡片小部件。我发现flutter为容器提供了一种简单的方法,但似乎找不到其他小部件的方法(除了将它们包装在容器中)。这是我目前得到的代码: 因此,在我的子列中,我想在顶部和底部添加一些填充,而不必插入新的容器。这可能吗?