如何将ListView中的项目覆盖到Flutter中的整个屏幕

问题描述 投票:0回答:2

我想要一个具有固定数量的项目的可滚动视图。第一个项目应覆盖父容器,而用户可以向下滚动以查看其余项目。

我试图将Expanded添加到第一个项目,但我得到白色屏幕

  ListView(
    children: <Widget>[
      Expanded(child: MainInfo(),),
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),    
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),  
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),  
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),   
    ],
  ),

我应该使用ListView或SingleChildScrollView(也没有使用Expanded)?

flutter flutter-layout flutter-listview
2个回答
0
投票

展开不能在可滚动窗口小部件中使用。你可以这样做:

ListView(
    children: <Widget>[
      Container(height:MediaQuery.of(context).size.height,child: MainInfo(),),
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),    
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),  
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),  
      Divider(height: 2, color: Colors.black,),    
      MainInfo(),   
    ],
  ),

0
投票

我已经设法通过使用返回ListView的LayoutBuilder来实现这一目标

LayoutBuilder(
      builder: (BuildContext context, BoxConstraints constraints) {
    return ListView(
      children: <Widget>[
        Container(
          child: MainInfo(),
          height: constraints.maxHeight,
        ),
        Divider(
          height: 2,
          color: Colors.black,
        ),
        MainInfo(),
        Divider(
          height: 2,
          color: Colors.black,
        ),
        MainInfo(),
        Divider(
          height: 2,
          color: Colors.black,
        ),
        MainInfo(),
        Divider(
          height: 2,
          color: Colors.black,
        ),
        MainInfo(),
      ],
    );
  }),
© www.soinside.com 2019 - 2024. All rights reserved.