2

下面的代码在不使用 Row 小部件的情况下工作,但是在使用带有 Row 的嵌套列表视图时会出错,如果这是上面代码中的用例,我如何使用 Row 我有一行,其中有两列

Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
  appBar: AppBar(
    title: Text("Dashboard"),
    actions: <Widget>[
      IconButton(
        icon: Icon(Icons.add_circle),
        iconSize: 50.0,
        onPressed: () {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (BuildContext context) => AddMember(),
            ),
          );
        },
      ),
    ],
  ),
  drawer: MainDrawer(),
  body: Container(
    decoration: BoxDecoration(
      image: Background().buildBackgroundImage(),
    ),
    child: ListView(
      children: <Widget>[
        Row(
          children: <Widget>[
            Column(
              children: <Widget>[
                Text("1"),
              ],
            ),
            Column(
              children: <Widget>[
                Text("Hammad"),
                ListView.builder(
                  shrinkWrap: true,
                  physics: ClampingScrollPhysics(),
                  itemBuilder: (BuildContext context, int index) {
                    return Text("data");
                  },
                  itemCount: 100,
                ),
              ],
            ),
          ],
        )
      ],
    ),
  ),
);

  } }

代码给出以下错误?

另一个异常被抛出:RenderBox 没有布局:RenderRepaintBoundary#df728 relayoutBoundary=up6 NEEDS-PAINT I/flutter (6704):另一个异常被抛出:RenderBox 没有布局:RenderFlex#44487 relayoutBoundary=up5 NEEDS-PAINT I/flutter (6704):引发了另一个异常:未布置 RenderBox:RenderFlex#99d5f relayoutBoundary=up4 NEEDS-PAINT I/flutter(6704):引发了另一个异常:'package:flutter/src/rendering/sliver_multi_box_adaptor.dart':断言失败:第 443 行 pos 12:'child.hasSize':不正确。I/flutter(6704):引发了另一个异常:NoSuchMethodError:在 null 上调用了 getter 'scrollOffsetCorrection'。I/flutter(6704):引发了另一个异常:NoSuchMethodError:在 null 上调用了方法“debugAssertIsValid”。我/颤振(6704):

4

2 回答 2

2

使用灵活的小部件包装您的列。

Flexible(
           child: Column(
           children: <Widget>[
于 2018-11-05T05:44:04.357 回答
1

请记住,无论何时使用 Row 小部件或 Column 小部件,您都必须为所有其他小部件提供明确的尺寸(小于总可用空间),但如果您不确定尺寸,则为所有需要最小尺寸才能看起来不错的小部件,对于其他小部件,请使用 Expanded 小部件。

看看这个代码的想法

Row(
  children: <Widget>[
    Expanded(
      //Widget that is long and can cause overflow
      child: LongWidget(),
    ),
    //Give definite Size to this widget
    FixedSizedWidget()
  ],
),                               

于 2020-04-23T12:16:28.187 回答