Ben bu initState’nin mantığını türlü çözemedim. Bir sürü değişken tanımlıyoruz ama neden sadece tumDersler=[]; ’i initState içerisine koyuyoruz. O kısmı anlamadım.
initState ve reverse
@override
void initState() {
// TODO: implement initState
super.initState();
tumDersler = [];
}
Diğer sorum ListView.builder içinde en son eklenenin ilk gözükmesi için reverse kullandım fakat satırları silince son satırlar altta kalıyor, yukarıya doğru çıkmıyor. Sadece sıralamayı değiştiren bir parametre var mı?
child: ListView.builder(
primary:true,
reverse: true,
asli initstate widget ilk olusturuldugunda calıstırılır ve sonra calıstırılmaz, senin build metotların tekrar tekrar tetiklenir ama initstate sadece bir kere tetiklenir
eger biz tumdersler tanımını build metotu içinde yapsaydık build her tetiklendiğinde - ki eğer build metotu içine bir debugprint ifadesi koyarsan sürekli çağrıldıgını görürsün - sürekli sıfırlanırdı o yüzden initstate kullandık.
reverse metotunu pek kullanmadım neden böyle bir hata yaptıgını bilmiyorum , belki baska bir sebepten oluyordur. ama sanırım şu yolla bu etkiyi saglayabilirsin
elemanları listeye eklerken index verip ve hepsini de 0. indexe atarsan zaten listen en son eklenen eleman en basta olacak sekilde ayarlanmıs olur
void insert(int index, E element);
bunun için tumdersler.add yerine tumdersler.insert(0, eklenecek not) seklinde kullanabilrsn
reverse yerine insert(int index, E element); ile ekleyince düzeldi.
Fakat initState’yi kaldırıp tumDersler’i aşağıdaki şekilde build metodu dışında tanımladım bir fark olmadı. Program aynı çalışıyor.
class _MyHomePageState extends State<MyHomePage> {
List<Ders> tumDersler=[];
@override
Widget build(BuildContext context) {
return Scaffold(