Android 如何切换此代码以显示在carousel pro颤振上
我正试图将这些图像显示到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
有一些来自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,
),
);
使用诸如语法之类的工具来提高你的写作水平。