Obi*_*si7 2 flutter-layout sliver-grid
我的 Flutter 应用程序的这一部分出现了一个非常讨厌的错误,但不知道为什么:
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
childAspectRatio: 4 / 3,
mainAxisSpacing: 30.0,
crossAxisSpacing: 20.0),
padding: EdgeInsets.only(left: 20),
scrollDirection: Axis.horizontal,
itemCount: products.length,
itemBuilder: (context, i) => ChangeNotifierProvider.value(
value: products[i],
child: Consumer<Product>(
builder: (context, product, _) {
return ProductCard(
product: product,
onSelected: (prod) {
setState(() {
products.forEach(
(item) {
item.isSelected = false;
},
);
prod.isSelected = true;
});
here's the error: SliverGeometry is not valid: The "scrollExtent" is negative.geometry: SliverGeometry(scrollExtent: -10.0, paintExtent: 20.0, maxPaintExtent: -10.0, cacheExtent: 20.0)
scrollExtent: -10.0
paintExtent: 20.0
maxPaintExtent: -10.0
cacheExtent: 20.0
Run Code Online (Sandbox Code Playgroud)
填充:EdgeInsets(20.0, 0.0, 0.0, 0.0)
很确定您已经解决了,但由于我没有看到任何可接受的答案,因此我将保留我的答案对其他人有用。
我处于同样的情况,也遇到了同样的问题,面团在横轴上。问题是您同时提供mainAxisSpacing: 30.0和crossAxisSpacing: 20.0值。如果crossAxisCount: 1您没有使用主轴,则会mainAxisSpacing引发臭名昭著的SliverGeometry is not valid: The "scrollExtent" is negative.错误。独立于你的scrollingDirection你应该只传递该crossAxisSpacing值。
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
childAspectRatio: 4 / 3,
crossAxisSpacing: 20.0),
padding: EdgeInsets.only(left: 20),
scrollDirection: Axis.horizontal,
itemCount: products.length,
itemBuilder: (context, i) => ChangeNotifierProvider.value(
value: products[i],
child: Consumer<Product>(
builder: (context, product, _) {
return ProductCard(
product: product,
onSelected: (prod) {
setState(() {
products.forEach(
(item) {
item.isSelected = false;
},
);
prod.isSelected = true;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |