Я хотел бы иметь возможность отображать список NetworkImages, которые я получаю в полноэкранном режиме, и иметь возможность переключаться между ними. Я не могу найти достойный способ сделать это, хотя. В настоящее время у меня есть GridView.builder для отображения изображений, но мне не нравится, как он выглядит. Поэтому я пытаюсь сделать полноэкранный просмотр изображений, где вы можете перемещаться между изображениями, если их несколько.
Это то, что я сейчас использую, gridview. Хотя мне это не нравится, но для отображения изображений это было прилично. Я считаю, что для фактического отображения изображений мне всегда понадобится NetworkImage, поскольку мне нужно отправить некоторые заголовки авторизации для фактического просмотра изображения.
class _ImageViewState extends State<ImageView> {
@override
Widget build(BuildContext context) {
var height = MediaQuery.of(context).size.height;
var width = MediaQuery.of(context).size.width;
return Container(
height: height,
width: width,
child: Scaffold(
body: FutureBuilder<dynamic>(
future: ImageDBProvider.imageDB.getUserimageData(widget.recordType, widget.recordData.id),
initialData: List(),
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('none');
case ConnectionState.waiting:
return Center(child: CircularProgressIndicator());
case ConnectionState.active:
return Text('');
case ConnectionState.done:
if (snapshot.hasError) {
print(
'${snapshot.error}',
);
}
}
var userImageData = snapshot.data;
return GridView.builder(
itemCount: userImageData['images'].length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2),
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.all(5),
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(
userImageData['images'][index].url, headers: <String, String>{
'Authorization': '${userImageData['user_data']['token']}',
},),
fit: BoxFit.cover))));
});
}
),
),
);
}
}
Вы можете использовать PageView