Я новичок в изучении и написании программы сопоставления изображений, в которой мы щелкаем два изображения, и при сопоставлении они остаются открытыми, иначе они возвращаются назад. Следующий код, который я написал:
class _FlipgameState extends State<Flipgame> {
List<int> nos=[0,0,1,1,2,2,3,3,4,4,5,5,6,6];
List<String> imgs=["ballon.png","book.png","camera.jpg","cartoon.jpg","mountain.jpeg","student.png"];
var count=0;
void checkimage(int a)
{
print("clicked $a");
}
@override
void initState() {
// TODO: implement initState
super.initState();
nos.shuffle();
print(nos);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Image Game"),),
body: Column(
children: [
Expanded(
child:Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: getit(1),
flex: 1,
),
Expanded(
child: getit(2),
flex: 1,
),
Expanded(
child: getit(3),
flex: 1,
)
],
),
flex:1,
),
Expanded(
child:Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: getit(4),
flex: 1,
),
Expanded(
child: getit(5),
flex: 1,
),
Expanded(
child: getit(6),
flex: 1,
)
],
),
flex:1),
Expanded(
child:Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: getit(7),
flex: 1,
),
Expanded(
child: getit(8),
flex: 1,
),
Expanded(
child: getit(9),
flex: 1,
)
],
),
flex: 1,),
Expanded(
child:Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: getit(10),
flex: 1,
),
Expanded(
child: getit(11),
flex: 1,
),
Expanded(
child: getit(12),
flex: 1,
)
],
),
flex: 1,),
],
),
)
;
}
Widget getit(int a) {
AssetImage ai=AssetImage('assets/images/blank.png');
return Padding(
padding: const EdgeInsets.all(2.0),
child: GestureDetector(
child:Image(
image: ai,
width:60 ,
height: 60,
),
onTap: (){checkimage(a);},
),);
}
}
В checkimage, как я могу изменить изображение на изображении. Можем ли мы получить ссылку на представления изображений в методе checkimage, чтобы я мог изменить изображение на объекте Image .