繁体   English   中英

在 singlechildscrollview 列中调用有状态小部件后颤动中的 RenderFlex 错误

[英]RenderFlex error in flutter after a stateful widget is called inside a singlechildscrollview column

这是显示喜欢的喜欢小部件。 它在另一个 dart 文件的滚动视图列内调用。 在添加此小部件之前一切正常

     @override
      Widget build(BuildContext context) {
        return Container(
          height: 100,
          child: Row(
            children: <Widget>[
              Expanded(
                child: ListTile(
                  leading: IconButton(
                    icon: likedByReader
                        ? Icon(Icons.favorite, color: Colors.orange)
                        : Icon(Icons.favorite, color: Colors.grey),
                    onPressed: _pressed,
                  ),
                ),
              ),
              Expanded(
                child: Text('${likesList.length} likes'),
              )
            ],
          ),
        );
      }

这就是 LikeWidget 的调用方式

Expanded(child: LikeWidget(widget.readerEmail, widget.blogUIDInFirebase),),

控制台中显示的错误

RenderFlex children have non-zero flex but incoming height constraints are unbounded.

RenderBox was not laid out: _RenderSingleChildViewport#89f28 relayoutBoundary=up10 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1694 pos 12: 'hasSize'

您不能在 SingleChildScrollView 中使用 Expanded。 因为 SingleChildScrollView 有特殊的约束和 Expanded 它期望在 Column 或 Row 内使用。 还有一个类似的问题在这里,基本上你应该为此做有条件的渲染工作,返回的列时的内容高度比父高度较小,并返回一个滚动视图时,内容不适合。为此我会用LayoutBuilder,但 CustomScrollView似乎性能更高检查该问题的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM