嵌套滚动视图内的颤动水平滚动视图抛出越界错误
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
),)
我在嵌套滚动视图中嵌套水平列表视图时遇到困难。我真正想要的是一组水平列表,在垂直列表视图类型的容器中一个接一个地排列。
下面是我的 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
),)