import 'dart:convert';
import 'package:ders2/ders2/api_resim.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:photo_view/photo_view.dart'; import 'package:photo_view/photo_view_gallery.dart';
import 'resimresmodel.dart';
class AnasayfaPage3 extends StatefulWidget { const AnasayfaPage3({Key? key}) : super(key: key);
@override State<AnasayfaPage3> createState() => _AnasayfaPage3State(); }
class _AnasayfaPage3State extends State<AnasayfaPage3> { bool yuklendimi = false;
ResimResModel? resimResModel = null;
@override void initState() { // TODO: implement initState super.initState();
yuklendimi = false;
ApiResim apiResim = new ApiResim(); apiResim.getResimList().then((ResimResModel resimResModel) { this.resimResModel = resimResModel; yuklendimi = true; setState(() {}); }); }
@override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Anasayfa"), ), body: yuklendimi == false ? loadingContent() : bodyContent()); }
Center loadingContent() => Center(child: CircularProgressIndicator());
Widget bodyContent(){ return Container( child: PhotoViewGallery.builder( scrollPhysics: const BouncingScrollPhysics(), builder: (BuildContext context, int index) { return PhotoViewGalleryPageOptions( imageProvider: imageContent(index), initialScale: PhotoViewComputedScale.contained * 0.8, heroAttributes: PhotoViewHeroAttributes(tag: resimResModel!.resimData![index].id!), ); }, itemCount: resimResModel!.resimData!.length, loadingBuilder: (context, event) => Center( child: Container( width: 20.0, height: 20.0, // child: CircularProgressIndicator( // value: event == null // ? 0 // : event.cumulativeBytesLoaded / event.expectedTotalBytes, // ), ), ), // backgroundDecoration: widget.backgroundDecoration, // pageController: widget.pageController, // onPageChanged: onPageChanged, ) );; }
ImageProvider imageContent(int index) { Image imageContent = new Image.memory( Base64Decoder().convert(resimResModel!.resimData![index].base64!), height: 150, fit: BoxFit.fill, ); ImageProvider imageProvider = imageContent.image; return imageProvider; } }
|