设置Sliver儿童的自定义高度

时间:2019-06-20 08:17:43

标签: 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"))),
          ],
        ),
      ]),
    ),
  ],
),

Text窗口小部件的大小应为50.0,但itemExtent避免这样做,当我为itemExtent设置高度时,所有继承自该高度的子项高度

1 个答案:

答案 0 :(得分:1)

顾名思义-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"))),
              ],
            ),
          ),
        ]),
      ),
    ],
  ),

输出: enter image description here