dataList = await DBHelper.getData('user_places');
_items = dataList
.map(
(item) => Place(
id: item['id'].toString(),
title: item['title'].toString(),
location: null,
image: File(item['image'].toString()),
),
)
.toList();
notifyListeners();
}
и виджет
body: FutureBuilder(
future: Provider.of<GreatPlaces>(context, listen: false).getData(),
builder: (context, snapshot) =>
snapshot.connectionState == ConnectionState.waiting
? const Center(
child: CircularProgressIndicator(),
)
: Consumer<GreatPlaces>(
builder: (ctx, greatPlaces, ch) => greatPlaces.items.isEmpty
? const Center(
child: Text('no img yet'),
)
: ListView.builder(
itemCount: greatPlaces.items.length,
itemBuilder: (ctx, i) => ListTile(
leading: CircleAvatar(
backgroundImage:
FileImage(greatPlaces.items[i].image),
),
title: Text(greatPlaces.items[i].title),
onTap: () {},
),
),
),
),
future назначте в переменную, метод вызывать будет не правильно
чуть подробнее, если не сложно
все равно спс, странно, я думал это рутина - когда проверяешь наличие файла при выводе и ответ где-то на поверхности или этим никто не заморачивается?)
без полного когда тяжело понимать контекст обычно просто делают так вывод файла: на этот сценарий расписывают 4 виджета к примеру грузим; (крутится спиннер) ошибка; (что-то пошло не так, карты памяти нет где он был) успешно; (файл загружен) не успешно; (файла нет)
а саму проверку как делают?
Обсуждают сегодня