dart - 如何使用文本在一行中显示 LinearProgressIndicator
问题描述
我想使用 aRow
来显示一些,Text
然后LinearProgressIndicator
使用以下代码连续显示:
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget { @override Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: Scaffold(
body: SafeArea(child: Row(
children: <Widget>[
Text('Start row'),
LinearProgressIndicator(),
],
),)),
); } }
问题是当我将Text
and包装LinearProgressIndicator
在Row
.
我只能在删除时Row
显示。而且我只能在不这样使用 时才能显示:Text
LinearProgressIndicator
LinearProgressIndicator
Row
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: Scaffold(
body: SafeArea(child: LinearProgressIndicator(),)),
);
}
}
这是没有Row
.
解决方案
当 LinearProgressIndicator 小部件位于行小部件内时,您应该为其设置宽度。控制台中的错误解释得很清楚:
BoxConstraints 强制无限宽度。这些无效约束由以下函数提供给 RenderCustomPaint 的 layout() 函数,该函数可能计算了有问题的无效约束:
每个无界小部件都应该包含在 Expanded 或 Flexible 等小部件中:
在这种情况下:
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: Scaffold(
body: SafeArea(
child: Row(
children: <Widget>[
Center( // this widget is not nessesary
child: Text('Some text'),
),
Expanded(child: LinearProgressIndicator()),
],
),
)),
);
}
}
这里也有关于这个问题的讨论。
推荐阅读
- ibm-watson - 是否有任何其他来源可以下载 IBM Watson iot-device-samples.git?
- kendo-ui - Kendo Spreadsheet的insertSheet方法
- javascript - 使用 Javascript 删除嵌入式 Vimeo 视频边框
- python - 如何在正则表达式组中返回 None?
- java - 通过java程序过滤数据或删除oracle db中的行更有效?
- javascript - 覆盖现有的 JavaScript Array.prototype 方法会导致无限递归?
- python - 定义一个函数以从 3 个数字中选择 2 个较大的数字,然后将 2 个数字的平方相加
- ember.js - Ember 如何决定何时在后台重新渲染组件?
- python - 在发送标准输入输入之前等待来自子进程的提示
- regex - 正则表达式:使用竖线时捕获组的索引是多少