Flutter - изменение размера больших файлов изображений перед их отображением в GridView.

Я беру список изображений пользователя из внешнего хранилища и показываю их в виде списка, когда дело доходит до больших файлов, пользовательский интерфейс становится слишком медленным и иногда залипает на несколько секунд. Как изменить их размер, прежде чем показывать вGridView эффективно?

@override
  Widget build(BuildContext context) {
    return GridView.builder(
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 4,
            childAspectRatio: 1 / 1,
            crossAxisSpacing: 2.0,
            mainAxisSpacing: 2.0),
        itemCount: data?.length ?? 0,
        itemBuilder: (context, index) {
          return FutureBuilder<Uint8List>(
            future: File(data[index].path).readAsBytes(),
            builder: (context, snapshot) {
              print('$index : ${data[index]}');
              return Container(
                decoration: BoxDecoration(color: Colors.grey[300]),
                child: snapshot.data != null && snapshot.error == null
                    ? GalleryItemView(snapshot.data)
                    : null,
              );
            },
          );
        });
  }

0 ответов

Другие вопросы по тегам