Örnek
MyApp sınıfı
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Test Uygulaması',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Ana Sayfa'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SoruSayfasi(test_1: TestVeri()),
),
);
},
child: Text('Test'),
),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SoruSayfasi(test_1: TestVeri2()),
),
);
},
child: Text('Test 2'),
),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SoruSayfasi(test_1: TestVeri3()),
),
);
},
child: Text('Test 3'),
),
],
),
),
),
);
}
}SoruSayfasi sınıfının içerisinde, TestVeri nesnelerini test_1 olarak almak
class SoruSayfasi extends StatefulWidget {
final TestVeri test_1;
SoruSayfasi({required this.test_1});
@override
_SoruSayfasiState createState() => _SoruSayfasiState();
}
class _SoruSayfasiState extends State<SoruSayfasi> {
List<Widget> secimler = [];
void butonFonksiyonu(bool secilenButon) {
if (widget.test_1.testBittiMi()) {
} else {
}
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
centerTitle: true,
title: Text('Soru Sayfası'),
),
backgroundColor: Colors.indigo[700],
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
flex: 4,
child: Padding(
padding: EdgeInsets.all(10.0),
child: Center(
child: Text(
widget.test_1.getSoruMetni(),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20.0,
color: Colors.white,
),
),
),
),
),
],
),
),
);
}
}MyApp sınıfında oluşturduğunuz TestVeri2 ve TestVeri3 sınıflarını aşağıdaki şekilde tanımla
class TestVeri2 extends TestVeri {
TestVeri2() {
_soruBankasi = [
Soru(soruMetni: 'Soru A', soruYaniti: true),
Soru(soruMetni: 'Soru B', soruYaniti: false),
];
}
}
class TestVeri3 extends TestVeri {
TestVeri3() {
_soruBankasi = [
Soru(soruMetni: 'Soru X', soruYaniti: true),
Soru(soruMetni: 'Soru Y', soruYaniti: false),
];
}
}her buton farklı bir TestVeri sınıfını kullanarak soruları gösterecek koduna göre uyarla