Selam, Flutter’da GridView.count widgetını kullanıyorum. Lengthini 10 verdim, fakat 10 tane aynı fotoğrafları döndürüyor. Her bir indexe farklı bir fotoğraf nasıl verebilirim?
https://hizliresim.com/a8ItSt
GridView data Index
- Edited
can list string içinde resimlerin adreslerini tut. Grid içinde image.Asset(resimler[index]) kullan
Flutter changed the title to GridView data Index.
HseyinAkkaya onTap te herhangi bit fotoğrafa tıklandığında hepsi aynı sayfaya gidiyor ama farklı sayfalara gitmesi gerekiyor
- Edited
int _currentPageIndex = 0;
Widget get _page {
switch (_currentPageIndex) {
case 0:
return FirstView();
break;
case 1:
return SecondView();
break;
default:
}
}
return GridView.count(
crossAxisCount: 2,
children: List.generate(10, (index) {
return GestureDetector(
onTap: () {
setState(() {
_currentPageIndex = index;
});
},
child: Card(
//semanticContainer: true,
clipBehavior: Clip.antiAliasWithSaveLayer,
elevation: 5,
margin: EdgeInsets.all(20),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Image.asset(images[index]
// fit: BoxFit.fill,
),
),
);
}));
- Edited
`var currentPageIndex = [];
Widget get page {
switch (currentPageIndex.length) {
case 0:
return FirstView();
break;
case 1:
return SecondView();
break;
default:
return page;
}
}
@override
Widget build(BuildContext context) {
return GridView.count(
crossAxisCount: 2,
children: List.generate(10, (index) {
return GestureDetector(
onTap: () {
setState(() {
page;
});
},
child: Card(
//semanticContainer: true,
clipBehavior: Clip.antiAliasWithSaveLayer,
elevation: 5,
margin: EdgeInsets.all(20),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20)),
child: Image.asset(images[index]
// fit: BoxFit.fill,
),
),
);
}));
}
}
`
- GridView.count ile list içine 10 tane fotoğrafın adreslerini tutarak, 10 fotoğrafı gönderiyorum. Bu okey.
2.Şimdi ise GestureDetector un onTap içine setstate ile her fotoğrafın farklı sayfaları açması gerekiyor örneğin index 1 fotoğrafı tıklandığında index 1 sayfası açılmalı. Index 2 fotoğrafı tıklandığında index 2 sayfası açılmalı şeklinde.
Switch-case yapısı ile sayfalarımı tutuyorum. Şuan ki dizi index değişkenini oluşturdum. Fakat fotoğraflar tıklandığında herhangi bir reaksiyon alamıyorum.var currentPageIndex = [0]; Widget get page { switch (currentPageIndex.length) { case 0: return FirstView(); break; case 1: return SecondView(); break; default: return page; } } @override Widget build(BuildContext context) { return GridView.count( crossAxisCount: 2, children: List.generate(10, (index) { return GestureDetector( onTap: () { setState(() { index = currentPageIndex.length; }); page; }, child: Card( //semanticContainer: true, clipBehavior: Clip.antiAliasWithSaveLayer, elevation: 5, margin: EdgeInsets.all(20), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(20)), child: Image.asset(images[index] // fit: BoxFit.fill, ), ), ); })); }