Android 如何切换此代码以显示在carousel pro颤振上

Android 如何切换此代码以显示在carousel pro颤振上,android,firebase,flutter,dart,firebase-storage,Android,Firebase,Flutter,Dart,Firebase Storage,我正试图将这些图像显示到carousel pro中,但运气不佳。 有一些来自firestore存储的照片,我想在我的移动应用程序中显示,并且可以正常工作,但我只想在旋转幻灯片中 class ImagesScreen extends StatelessWidget { Widget makeImagesGrid() { return GridView.builder( itemCount: 7, gridDelegate: SliverGridDelegat

我正试图将这些图像显示到carousel pro中,但运气不佳。
有一些来自firestore存储的照片,我想在我的移动应用程序中显示,并且可以正常工作,但我只想在旋转幻灯片中

class ImagesScreen extends StatelessWidget {
  Widget makeImagesGrid() {
    return GridView.builder(
      itemCount: 7,
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 2),
        itemBuilder: (context, index) {
          return ImageGridItem(index+1);
        });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Test Image"),
      ),
      body: Container(
        child: makeImagesGrid(),
      ),
    );
  }
}

class ImageGridItem extends StatefulWidget {

  int _index;

  ImageGridItem(int index){
    this._index = index;
  }
  @override
  _ImageGridItemState createState() => _ImageGridItemState();
}

class _ImageGridItemState extends State<ImageGridItem> {
  
  Uint8List imageFile;
  StorageReference photosReference = FirebaseStorage.instance.ref().child("images/reklama");
  
  getImage() {
    int MAX_SIZE = 7*1024*1024;
    
    photosReference.child("reklama_${widget._index}.jpg").getData(MAX_SIZE).then((data) {
      this.setState(() {
        imageFile = data;
      });
    }).catchError((error){
      debugPrint(error.toString());
    });
  }
  
  Widget decideGridTileWidget() {
    if(imageFile == null) {
      return Center(child: Image.asset("images/reklama.jpg"));
    }else {
      return Image.memory(imageFile,fit: BoxFit.cover);
    }
  }

  @override
  void initState() {
    super.initState();
    getImage();
  }
  
  @override
  Widget build(BuildContext context) {
    return GridTile(child: decideGridTileWidget());
  }
}
class ImagesScreen扩展了无状态小部件{
小部件makeImageGrid(){
返回GridView.builder(
物品计数:7,
gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(
交叉轴计数:2),
itemBuilder:(上下文,索引){
返回ImageGridItem(索引+1);
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“测试图像”),
),
主体:容器(
子项:makeImageGrid(),
),
);
}
}
类ImageGridItem扩展StatefulWidget{
int_指数;
ImageGridItem(int索引){
这个._index=index;
}
@凌驾
_ImageGridItemState createState()=>\u ImageGridItemState();
}
类_ImageGridItemState扩展状态{
UINT8列表图像文件;
StorageReference photoReference=FirebaseStorage.instance.ref().child(“images/reklama”);
getImage(){
int MAX_SIZE=7*1024*1024;
child(“reklama_${widget._index}.jpg”).getData(MAX_SIZE){
此.setState(){
图像文件=数据;
});
}).catchError((错误){
debugPrint(error.toString());
});
}
小部件decideGridTileWidget(){
if(imageFile==null){
返回中心(子项:Image.asset(“images/reklama.jpg”);
}否则{
返回Image.memory(imageFile,fit:BoxFit.cover);
}
}
@凌驾
void initState(){
super.initState();
getImage();
}
@凌驾
小部件构建(构建上下文){
返回网格块(子项:decideGridTileWidget());
}
}
并且应该可以帮助您做您想做的事情,您实际上不需要自己处理firestore和旋转木马滑动小部件中的图像。使用缓存的\u网络\u图像显示firestore中的图像的示例如下:

FutureBuilder(
  future: FirebaseStorage.instance
         .ref()
         .child('images/kartelaime.jpg')  // Your image path in firestore
         .getDownloadURL(),
  builder: (context, snapshot) {
      if(snapshot.data != null)
        return CachedNetworkImage(imageUrl: snapshot.data);
      else return Container();  
  }
)

如果可能,请提供一个代码示例

我正在尝试类似的东西,但这里的图像来自firebase存储,就像在第一个示例中一样,不是每个图像都给出一个路径,而是该文件夹中的所有图像

Widget build(BuildContext context) {
    Widget imageCarousel = new Container(
      height: 200.0,
      child: new Carousel(
        boxFit: BoxFit.cover,
        images: [
          AssetImage('images/kartelaime.jpg'),
          AssetImage('images/shperblime.png'),
          AssetImage('images/7vitemeridian.png'),
          AssetImage('images/ndertshpis.jpg'),
          AssetImage('images/ofertatjavore.png'),
          AssetImage('images/zgjerimi.jpeg'),
        ],
        autoplay: false,
        animationCurve: Curves.fastOutSlowIn,
        animationDuration: Duration(milliseconds: 1000),
        dotSize: 4.0,
        indicatorBgPadding: 4.0,
        dotBgColor: Colors.transparent,
      ),
    );

使用诸如语法之类的工具来提高你的写作水平。