gpt4 book ai didi

flutter - 错误 : RenderBox was not laid out, 断言失败:第 1940 行 pos 12: 'hasSize'

转载 作者:行者123 更新时间:2023-12-04 16:24:42 26 4
gpt4 key购买 nike

我无法修复此错误

RenderBox was not laid out: RenderPointerListener#2b92arelayoutBoundary=up9 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE'package:flutter/src/rendering/box.dart': Failed assertion: line 1940pos 12: 'hasSize'. The relevant error-causing widget was ->ListView


enter image description here
这是我的 allProducts 部分。
import 'package:flutter/material.dart';
import 'package:hospital/Drawer/drawercontent.dart';
import 'package:hospital/Product/AllProducts/ProductList/product_list.dart';
import 'package:hospital/Product/AllProducts/carousel.dart';
import 'package:hospital/Product/AllProducts/category.dart';

class AllProducts extends StatefulWidget {
@override
_AllProductsState createState() => _AllProductsState();
}

class _AllProductsState extends State<AllProducts> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.green,

title: Text(
"Product",
style: TextStyle(fontStyle: FontStyle.italic),
),
actions: [

IconButton(
icon: Icon(Icons.person),
onPressed: () => print("open cart"),
),
],

),
drawer: Drawer(
child: DrawerContent(),
),
body: ListView(

children: [
Carousel(),
SizedBox(
height: 10.0,
),

CategoryPage(),
SizedBox(
height: 20.0,
),
ProductList()

],
));
}
}

这是我的产品部分
import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:hospital/Product/AllProducts/ProductList/network_req.dart';
import 'package:hospital/Product/AllProducts/ProductList/product_model.dart';
import 'package:hospital/constant.dart';
import 'package:http/http.dart' as http;
// import '../../drawercontent.dart';

class ProductList extends StatefulWidget {
final s_id;

const ProductList({key, this.s_id}) : super(key: key);
@override
_ProductListState createState() => _ProductListState();
}

class _ProductListState extends State<ProductList> {
@override
Widget build(BuildContext context) {
return Container(
// ignore: missing_required_param
child: FutureBuilder<List<Model>>(
// future: NetReq.fetchTeams(),
future: NetReq.fetchTeams(widget.s_id),

builder: (context, snapshot) {
if (snapshot.hasError) {
return Text("Error ${snapshot.error}");
} else if (snapshot.hasData) {
return GridView.count(

// childAspectRatio: 1.0,
padding: EdgeInsets.only(left: 20, right: 20),
crossAxisCount: 2,
crossAxisSpacing: 18,
mainAxisSpacing: 18,

children: snapshot.data.map((team) {
return Card(
elevation: 3.0,
margin: EdgeInsets.all(10.0),
shape: RoundedRectangleBorder(

borderRadius: BorderRadius.circular(12.0),
),
child: Container(
width: 150.0,
padding: EdgeInsets.all(8.0),

child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: ClipRRect(

borderRadius: BorderRadius.circular(14.0),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12.0),
image: DecorationImage(
image: NetworkImage(
"https://5.imimg.com/data5/MR/TK/KJ/SELLER-769696/tulac-granules-500x500.jpeg"),
),

),
),
),
),
SizedBox(height: 12.0),

Text(
// "Tulac Granules, For Personal, Packaging Size: 90 Gm",
team.teamUniqId,
overflow: TextOverflow.ellipsis,
maxLines: 2,

style: kTitleStyle),
SizedBox(height: 6.0),
Text(
// "\u20B9 239/ Box",
team.teamType,

maxLines: 1,
style: kSubTitleStyle),
],
),
),

);
}).toList());
}
return Center(
child: CircularProgressIndicator(),

);
},
),
);

}
}

最佳答案

当 ListView 没有约束高度时会发生这种情况,这使得它获得无限高度,您可以使用两种解决方案来解决这个问题

  • 添加 shrinkWrap: true作为参数
    这将告诉 ListView 使用尽可能少的空间,
  • 用一个高度受限的小部件包裹你的 ListView,比如 SizedBoxContainer ,并给它一个像这样的高度和宽度

  •        Container(
    height: 50,
    width: 50,
    child: ListView()
    )

    希望这能解决你的问题

    关于flutter - 错误 : RenderBox was not laid out, 断言失败:第 1940 行 pos 12: 'hasSize',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67778027/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com