嵌套滚动视图内的颤动水平滚动视图抛出越界错误

Flutter Horizontal scroll view inside a nested scroll view throws out of bounds error

我在嵌套滚动视图中嵌套水平列表视图时遇到困难。我真正想要的是一组水平列表,在垂直列表视图类型的容器中一个接一个地排列。

下面是我的 flutter 代码的一部分,returns 错误:

Vertical viewport was given unbounded height

Widget build(BuildContext context) {
    return Scaffold(
      body:NestedScrollView(
        floatHeaderSlivers: true,
        headerSliverBuilder:(context,innerBoxIsScrolled)=>[
          const SliverAppBar(
            systemOverlayStyle: SystemUiOverlayStyle(statusBarIconBrightness: Brightness.light,statusBarBrightness: Brightness.dark,),
            floating: true,snap: true,
            title: Padding(padding: EdgeInsets.all(8.0),child: Text("Swahili Times", style: TextStyle(color:Color(0xffbf0000), fontFamily: "old-english",fontSize: 20),),),
            centerTitle: true,backgroundColor: Colors.white,elevation: 4.0,
          ),
        ],
        body: SingleChildScrollView(
          child: Column(
            children: [
              ListView.separated(
                  scrollDirection: Axis.vertical,
                  padding: const EdgeInsets.all(6.0),
                  itemBuilder: (context,item)=> buildCard(item+1),
                  separatorBuilder: (context,item)=> const SizedBox(height: 12,),
                  itemCount: 9
              )
            ],
          ),
        ),
      )
    );
  }
  }

列表视图需要在 SizedBox 或 Expanded Widgets 中设置它的高度,它会成功无误地工作

SizedBox(
height: 200,
child : ListView.separated(
  scrollDirection: Axis.vertical,
  padding: const EdgeInsets.all(6.0),
  itemBuilder: (context,item)=> buildCard(item+1),
  separatorBuilder: (context,item)=> const SizedBox(height: 12,),
  itemCount: 9
),)

或者您可以使用扩展

Expanded(
child : ListView.separated(
  scrollDirection: Axis.vertical,
  padding: const EdgeInsets.all(6.0),
  itemBuilder: (context,item)=> buildCard(item+1),
  separatorBuilder: (context,item)=> const SizedBox(height: 12,),
  itemCount: 9
),)