颤振:如何在Carousel中实现对图像的删除功能

问题描述 投票:0回答:2

我一直试图找到一种方法在旋转木马(carousel_pro)中为图像添加一个Dismissible或Gesturedetector,这样用户可以滑动或按下删除给定的图像,但没有成功!非常感谢有关如何实现这一目标的任何提示或想法。

AspectRatio(
  aspectRatio: 0.9,
  child: Carousel(
    images: aData.images.map((url) {
      return GestureDetector(
        child: CachedNetworkImageProvider(url),
        onTap: () {});
    }).toList(),
    dotSize: 4.0,
    dotSpacing: 15.0,
    dotBgColor: Colors.transparent,
    dotColor: Colors.red,
    autoplay: false,
  ),
),

这会引发错误:无法将参数类型“CachedNetworkImageProvider”分配给参数类型“Widget”。

dart flutter
2个回答
0
投票

这是在Flutter中使用CahedImage的方法

CachedNetworkImage(
        placeholder: CircularProgressIndicator(),
        imageUrl:
            'https://picsum.photos/250?image=9',
      ),

所以,你的代码将是

 return GestureDetector(
    child:CachedNetworkImage(
        placeholder: CircularProgressIndicator(),
        imageUrl:
            'https://picsum.photos/250?image=9',
      ),
    onTap: () {});
})

0
投票

如果您只想从屏幕中删除项目(不是从数据库中删除),则需要将gestureDetector包装到if语句中。

class YourClass extends StatefullWidget{
  boolean showCaroussel = true;
.......
return  showCaroussel ? GestureDetector(
child:CachedNetworkImage(
    placeholder: CircularProgressIndicator(),
    imageUrl:
        'https://picsum.photos/250?image=9',
  ),
onTap: () {
 setState((){
showCaroussel  = !showCaroussel ;
});
}) ;
}): Container();

希望它能够......

© www.soinside.com 2019 - 2024. All rights reserved.