问题描述
我通过API从后端获取图像,但是Flutter必须在容器中设置约束,但是图像高度不一样,该怎么办?
抖动图像问题:
import 'package:cached_network_image/cached_network_image.dart';
import 'package:Flutter/cupertino.dart';
import 'package:Flutter/material.dart';
import 'package:Flutter_swiper/Flutter_swiper.dart';
import 'package:Flutter_use_redux/component/pureProduct.dart';
import 'package:Flutter_use_redux/models/product.dart';
import 'package:Flutter_use_redux/reselect/reselectHome.dart';
import 'package:oktoast/oktoast.dart';
/// 首页轮播组件编写
class SwiperDiy extends StatelessWidget {
final List swiperDataList;
final String imageHost;
final bool autoplay;
SwiperDiy({Key key,this.swiperDataList,this.imageHost,this.autoplay}) : super(key: key);
@override
Widget build(BuildContext context) {
Map swiperData= reselectSwiper(swiperDataList);
List realSwiperData=swiperData['list'];
return Container(
constraints:
BoxConstraints(
maxHeight:550
),child: Swiper(
scrollDirection: Axis.horizontal,itemBuilder: (BuildContext context,int index) {
Map product=realSwiperData[index];
return InkWell(
onTap: () {
print('/collections/${product['link']}');
},child: CachednetworkImage(imageUrl:imageHost+product['href'],fit: BoxFit.fill,),);
},itemCount: realSwiperData?.length,//pagination: new SwiperPagination(),autoplay: realSwiperData.length>1,viewportFraction:1,// 当前视窗展示比例 小于1可见上一个和下一个视窗
scale: 1,);
}
}
这是我的代码。但是maxHeight不适合我的想法:
例如,图像来自网络,有时它的高度可能是300,有时它的高度可能是400,我只想让滑动器拉伸容器。
解决方法
使用height
的{{1}}和width
构造函数
Container