如何在带有文本的行中显示 LinearProgressIndicator

S.D*_*.D. 3 dart flutter

我想使用 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(),
            ],
          ),)),
    );   } }
Run Code Online (Sandbox Code Playgroud)

问题是当我将Text和 包装LinearProgressIndicatorRow.

我只能在删除时Row显示。我只能在不使用 时显示 ,如下所示:TextLinearProgressIndicatorLinearProgressIndicatorRow

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(),)),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是应用程序在没有Row.

无行

Yam*_*min 6

当 LinearProgressIndicator 小部件位于行小部件内时,您应该为它设置一个宽度。控制台中的错误解释得很清楚:

BoxConstraints 强制无限宽度。这些无效约束由以下函数提供给 RenderCustomPaint 的 layout() 函数,该函数可能计算出相关的无效约束:

每个无界小部件都应该包装在扩展或灵活等小部件内:

在这种情况下:

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()),
          ],
        ),
      )),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这里也有一个与这个问题相关的讨论