为 Sliver 儿童设置自定义高度

Dol*_*rma 1 flutter flutter-layout

在下面的代码中,我遇到了问题,我正在尝试为 Sliver 子项的每个子项设置自定义高度,我只是在 Flutter 上了解了这个小部件,我想修复它,例如:

CustomScrollView(
  slivers: <Widget>[
    SliverFixedExtentList(
      itemExtent: MediaQuery.of(context).size.height,
      delegate: SliverChildListDelegate([
        ConstrainedBox(
          constraints: BoxConstraints(
            maxHeight: 50.0,
            minHeight: 50.0
          ),
          child: Text('dddddddddd'),
        ),
        PageView(
          children: <Widget>[
            Container(color: Colors.green, child: Center(child: Text("Page 1"))),
            Container(color: Colors.red, child: Center(child: Text("Page 2"))),
            Container(color: Colors.indigo, child: Center(child: Text("Page 3"))),
          ],
        ),
      ]),
    ),
  ],
),
Run Code Online (Sandbox Code Playgroud)

Text小部件应该有 50.0 大小,但要itemExtent避免这样做,当我为itemExtent从该继承的所有子高度设置一些高度时

anm*_*ail 5

顾名思义,itemExtent:它赋予每个孩子身高。

您可以简单地使用SliverList并为每个孩子指定特定的身高。

CustomScrollView(
    slivers: <Widget>[
      SliverList(
        delegate: SliverChildListDelegate([
          ConstrainedBox(
            constraints: BoxConstraints(maxHeight: 50.0, minHeight: 50.0),
            child: Center(child: Text('Child 1')),
          ),
          SizedBox(
            height: 200.0,
            child: PageView(
              children: <Widget>[
                Container(
                    color: Colors.green,
                    child: Center(child: Text("Page 1"))),
                Container(
                    color: Colors.red,
                    child: Center(child: Text("Page 2"))),
                Container(
                    color: Colors.indigo,
                    child: Center(child: Text("Page 3"))),
              ],
            ),
          ),
        ]),
      ),
    ],
  ),
Run Code Online (Sandbox Code Playgroud)

输出: 在此输入图像描述