BUGÜN NE YESEM?
//UYGULAMA ANA DİZİNİNE assets/images klasörü ekledik fotoğrafları yükledik. pubspec.yaml dosyasından konfigüre ettik.
// KÜTÜPHANELERİ EKLEDİK
import ‘package:flutter/material.dart’;
import ‘dart:math’; //RANDOM İŞLEMİ İÇİN EKLENDİ
// ANA PROGRAM İLE FONKSİYONU ÇAĞIRDIK
void main() {
runApp(BenimUygulamam());
}
// UYGULAMANIN APPBAR INI OLUŞTURDUK GÖVDE İÇİN BAŞKA BİR FONK. ÇAĞIRDIK
class BenimUygulamam extends StatelessWidget { // ekran bir kere boyanacak ve daha değişmeyecek. state almaz. durumsuz widget
@override
Widget build(BuildContext context) {
return MaterialApp( // materialapp kütüphanesini kullanacağız
home: Scaffold(
appBar: AppBar(
backgroundColor: Colors.blue[300],
centerTitle: true,
title: Text(‘BUGÜN NE YESEM?’,
style: TextStyle(color: Colors.black), // title text i şekillendiriyoruz
),
),
body: YemekSayfasi(),
backgroundColor: Colors.brown[100], // body kısmını fonksiyon ile dolduruyoruz
),
);
}
}
// STATEFULWIDGET İLE KLAS OLUŞTURDUK
class YemekSayfasi extends StatefulWidget {
@override
_YemekSayfasiState createState() => _YemekSayfasiState();
}
class _YemekSayfasiState extends State<YemekSayfasi> {
int corbaNo=1; // Değişken tanımlamaları yapıldı
int yemekNo=1;
int tatliNo=1;
List <String> corbaListe = [“Mercimek Çorbası”, “Tarhana Çorbası”, “Tavuksuyu Çorbası”, “Düğün Çorbası”, “Yayla Çorbası”];
List <String> yemekListe = [“İmambayıldı”, “Mantı”, “Kuru Fasulye”, “İçli Köfte”, “Çupra Izgara”];
List <String> tatliListe = [“Kadayıf”, “Baklava”, “Sütlaç”, “Kazandibi”, “Dondurma”];
void yemekDegistir(){ // onPress içine tek elden iş yapmak için fonksiyon yazdık
setState(() { // state içindeki değişkeni setState ile değiştirdik
corbaNo= Random().nextInt(5)+1; // random metodu ile her tıklamada çorbayı değiştirdik
yemekNo=Random().nextInt(5)+1;
tatliNo = Random().nextInt(5)+1;
});
}
@override
Widget build(BuildContext context) {
return Center(
child: Column(
children: <Widget>[ // Column içine öğeler yerleştirmek için children <Widget> [] kullanılır
Expanded(
child: Padding( // expand ile aynı öğe içindeki kardeş resimleri boyutlandırdık. flex: 1x, flex:2x, flex: 5x
padding: const EdgeInsets.all(8.0),
child: FlatButton(
highlightColor: Colors.white, // buton basıldığında taşan arka rengi saklamak için
splashColor: Colors.white, // buton basıldığında taşan arka rengi saklamak için
onPressed: yemekDegistir, // tek satır olduğu için {}, parametre beklemesin diye () kullanmadık
child: Image.asset(“assets/images/corba_$corbaNo.jpg”),
),
),
),
Text(
corbaListe[corbaNo-1],
style: TextStyle(
fontSize: 15,
fontWeight:FontWeight.bold
),
),
Container(
width: 300,
child: Divider(
height: 15,
color: Colors.brown
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0), //resimlerin çevresine 12 px padding
child: FlatButton(
highlightColor: Colors.red,
splashColor: Colors.red,
onPressed: yemekDegistir,
child: Image.asset(“assets/images/yemek_$yemekNo.jpg”),
),
),
),
Text(
yemekListe[yemekNo-1], // diziden resimlerdeki yemeğin adını çekiyoruz
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold
),
),
Container( // Divider e genişlik ayarı vermek için Container içine aldık
width: 300,
child: Divider(
height: 15,
color: Colors.brown,
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: FlatButton(
highlightColor: Colors.blue,
splashColor: Colors.blue,
onPressed: yemekDegistir,
child: Image.asset(“assets/images/tatli_$tatliNo.jpg”),
),
),
),
Text(
tatliListe[tatliNo-1],
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.bold,
),
),
Container(
width: 300,
child: Divider(
height: 15,
color: Colors.brown,
),
)
],
),
);
}
}