flutter listView.builder不显示10多种产品,但我有100种产品
class IlacProductRepo extends GetxService {
final ApiClient apiClient;
IlacProductRepo({required this.apiClient});
Future<Response> getIlacProductList() async {
return await apiClient.getData(AppConstans.ALL_PRODUCT_ILAC);
}
}
class IlacProductController extends GetxController {
final IlacProductRepo ilacProductRepo;
IlacProductController({required this.ilacProductRepo});
List<dynamic> _ilacproductList = [];
List<dynamic> get ilacproductList => _ilacproductList;
bool _isLoaded = false;
bool get isLoaded => _isLoaded ;
Future<void> getIlacProductList() async {
Response response = await ilacProductRepo.getIlacProductList();
if (response.statusCode == 200) {
print("got ilaç");
_ilacproductList = [];
_ilacproductList.addAll(Product.fromJson(response.body).products);
_isLoaded=true;
update();
} else {return print("something wrong");}
}
}
//标题中提到的另一页
case Page.ilac:
return GetBuilder<IlacProductController>(builder: (ilacProduct) {
return ilacProduct.isLoaded
? ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: ilacProduct.ilacproductList.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
Get.toNamed(RouteHelper.getIlacProduct(index));
},
child: Container(
margin: EdgeInsets.only(
left: Dimensions.width20,
right: Dimensions.width10,
bottom: Dimensions.height15),
child: Row(
children: [
//image section
Container(
width: Dimensions.listViewImgSize,
height: Dimensions.listViewImgSize,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
Dimensions.radius20),
color: Colors.white38,
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage(
AppConstans.BASE_URL +
AppConstans.UPLOAD_URL +
ilacProduct
.ilacproductList[index]
.img!))),
),
//text section
Expanded(
child: Container(
height: Dimensions.listViewTextContSize,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topRight: Radius.circular(
Dimensions.radius20),
bottomRight: Radius.circular(
Dimensions.radius20)),
color: Colors.white),
child: Padding(
padding: EdgeInsets.only(
left: Dimensions.width10,
right: Dimensions.width10),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
BigText(
text: ilacProduct
.ilacproductList[index].name!,
),
SizedBox(
height: Dimensions.height10,
),
ExpandableProductText(text: ilacProduct
.ilacproductList[index].description!),
SizedBox(
height: Dimensions.height10,
),
],
),
),
),
)
],
)),
);
})
: const CircularProgressIndicator(
color: AppColor.mainColor,
);
});
break;
,我将有近1000种产品,但目前,应用程序中的产品不超过10个。
我不知道问题是什么,我认为这不是项目数,我想知道我是否在控制器部件中犯了逻辑错误?
正如我在标题中提到的那样,我将有近1000种产品,但目前,应用程序中的产品不超过10个。
我不知道问题是什么,我认为这不是项目数,我想知道我是否在控制器部件中犯了逻辑错误?
class IlacProductRepo extends GetxService {
final ApiClient apiClient;
IlacProductRepo({required this.apiClient});
Future<Response> getIlacProductList() async {
return await apiClient.getData(AppConstans.ALL_PRODUCT_ILAC);
}
}
class IlacProductController extends GetxController {
final IlacProductRepo ilacProductRepo;
IlacProductController({required this.ilacProductRepo});
List<dynamic> _ilacproductList = [];
List<dynamic> get ilacproductList => _ilacproductList;
bool _isLoaded = false;
bool get isLoaded => _isLoaded ;
Future<void> getIlacProductList() async {
Response response = await ilacProductRepo.getIlacProductList();
if (response.statusCode == 200) {
print("got ilaç");
_ilacproductList = [];
_ilacproductList.addAll(Product.fromJson(response.body).products);
_isLoaded=true;
update();
} else {return print("something wrong");}
}
}
//another page
case Page.ilac:
return GetBuilder<IlacProductController>(builder: (ilacProduct) {
return ilacProduct.isLoaded
? ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: ilacProduct.ilacproductList.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
Get.toNamed(RouteHelper.getIlacProduct(index));
},
child: Container(
margin: EdgeInsets.only(
left: Dimensions.width20,
right: Dimensions.width10,
bottom: Dimensions.height15),
child: Row(
children: [
//image section
Container(
width: Dimensions.listViewImgSize,
height: Dimensions.listViewImgSize,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
Dimensions.radius20),
color: Colors.white38,
image: DecorationImage(
fit: BoxFit.cover,
image: NetworkImage(
AppConstans.BASE_URL +
AppConstans.UPLOAD_URL +
ilacProduct
.ilacproductList[index]
.img!))),
),
//text section
Expanded(
child: Container(
height: Dimensions.listViewTextContSize,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topRight: Radius.circular(
Dimensions.radius20),
bottomRight: Radius.circular(
Dimensions.radius20)),
color: Colors.white),
child: Padding(
padding: EdgeInsets.only(
left: Dimensions.width10,
right: Dimensions.width10),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
BigText(
text: ilacProduct
.ilacproductList[index].name!,
),
SizedBox(
height: Dimensions.height10,
),
ExpandableProductText(text: ilacProduct
.ilacproductList[index].description!),
SizedBox(
height: Dimensions.height10,
),
],
),
),
),
)
],
)),
);
})
: const CircularProgressIndicator(
color: AppColor.mainColor,
);
});
break;
As I mentioned in the title, I will have close to 1000 products, but at the moment, there are no more than 10 in the application.
I don't know what the problem is, I think it can't be item count, I wonder if I made a logic error in the controller part?
As I mentioned in the title, I will have close to 1000 products, but at the moment, there are no more than 10 in the application.
I don't know what the problem is, I think it can't be item count, I wonder if I made a logic error in the controller part?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论