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.

    @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(

    asli bu da olur, ama mesela o listeyi internetten gelen verilerle dolduracaksın diyelim, o zaman buildden önce yani kullanıcı widgetı görmeden doldurman lazım

    ozman initstate de yaparsın, genel olarak ilk deger atamaları değişkenlerin initialize edilmesi işlemleri initstate içinde yapılır

    Write a Reply...