0

我是 Flutter 的新手,我不确定这是否与已发布到此论坛的问题有关,所以我正在尝试从 firebase 存储加载图像,我的 url 很好,当我打印出来时系统并单击 url,我可以看到图像,但我不确定为什么在我的设备或笔记本电脑上尝试时图像没有加载,但是当我在代码上按 ctrl + s / hot reload 时,图像已加载。

这是我做过的几件事:

  1. 确保将 Internet 添加到 android-manifest.xml
  2. 在我的笔记本电脑上禁用代理连接

运行代码时我在使用什么:1. Windows 操作系统 2. OPPO F1s 3. Nexus 5x API R (AVD Manager)

我也从 adb shell ping 了谷歌(连接到我的 oppo 设备)它也可以工作。

我不确定为什么需要热重新加载才能正确加载图像,有没有关于这个问题的解决方案?

下面是我的代码的样子:

    import 'package:flutter/material.dart';
import 'package:flutter_app/models/app_state.dart';
import 'package:flutter_app/models/produk.dart';
import 'package:flutter_app/pages/halaman_produk_detail.dart';
import 'package:flutter_app/redux/actions.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:transparent_image/transparent_image.dart';

class ProdukItems extends StatelessWidget{
  final dynamic item;

  ProdukItems({this.item});

  bool _isInCart(AppState state, String id){
      final List<Produk> listProduk =  state.keranjangBelanja;
      return listProduk.indexWhere((produk) => produk.id == id) > -1;
  }

  @override
  Widget build(BuildContext context) {
    final String pictureUrl = item.gambarProdukFirebaseDB;
    return InkWell(
      onTap: () => Navigator.of(context).push(
        MaterialPageRoute(
          builder: (context){
            return HalamanProdukDetail(item: item);
          }
        )
      ),
      child:
      GridTile(
      child: Hero(
        tag: item,
        child: FadeInImage.memoryNetwork(placeholder: kTransparentImage, image: pictureUrl, fit: BoxFit.cover,)),
      footer: GridTileBar(
        title: FittedBox(
          fit: BoxFit.scaleDown,
          alignment: Alignment.centerLeft,
          child: Text(item.namaProduk, style: TextStyle(fontSize: 20.0),),
        ),
        subtitle: Text("Rp. ${item.hargaProduk}",style: TextStyle(fontSize: 16.0),),
        backgroundColor: Colors.black38,
        trailing: StoreConnector<AppState, AppState>(
          converter: (store) => store.state,
          builder: (_, state){
            return state.user != null ?
            IconButton(
              icon: Icon(Icons.shopping_cart), color: _isInCart(state, item.id) == true ? Colors.blue[400] : Colors.white ,
            onPressed: ()=> {
              StoreProvider.of<AppState>(context).dispatch(pencetKeranjangProdukAction(item))
            },) : Text('');
          },
        ),
      ),
    ),);
  }
}

先感谢您。

4

0 回答 0