FLUTTER SORUSU

Kodla Büyü

kaeii

Seçkin Üye
Seçkin Üye
Mesajlar
612
https://paste.ubuntu.com/p/ydTfRVxWC5/

YUKARIDAKI KODLARDA AMAÇ TEXTFIELD ALANINA GIRILEN VERIYI EKLE BUTONUNA TIKLAYINCA WIDGET CARD YARDIMIYLA EKLEMESI VE EKRANDA GOSTERMESI FAKAT EKRANDA GOSTEREMEDIM BIR TURLU. KODLAR YUKARIDA YARDIMCI OLABILECEK KIMSE VAR MI ACABA
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    11.3 KB · Görüntüleme: 72
Hocam Widget Card yardımıyla derken tam olarak ne demek istediniz anlayamadım. Ama eğitim serisinde bugün TextField kullanımını anlattım söylediğinize benzer bir örnek de yaptım incelerseniz sanırım cevabınızı bulacaksınız
 
Hocam Widget Card yardımıyla derken tam olarak ne demek istediniz anlayamadım. Ama eğitim serisinde bugün TextField kullanımını anlattım söylediğinize benzer bir örnek de yaptım incelerseniz sanırım cevabınızı bulacaksınız
Koda bakarsanız hocam. soyle yanı suan ben bu mesajı yazdıgımda bır alan acılı(column) ve mesaj gözükücek mesaj ekledıkce satırlar artacak. benımde ıstedıgım bu
 
Yapmak istediğinizi doğru anladıysam veri gidiyor ama sayfada göremiyorsunuz. Çünkü; statefulwidget ınızın durumunun güncellemesini setState ile hiç bir yerde tetiklememişsiniz. Dolayısıyla ekranda önceki hali görünüyor. Güncellenmiş hali değil.
 
Son düzenleme:
Yapmak istediğinizi doğru anladıysam veri gidiyor ama sayfada göremiyorsunuz. Çünkü; statefulwidget ınızın durumunun güncellemesini onState ile hiç bir yerde tetiklememişsiniz. Dolayısıyla ekranda önceki hali görünüyor. Güncellenmiş hali değil.
print ile eklendıgını goruyorum ama ekranda goremıyorum evet açıkcası cozemedım neresını guncelleyecegımı
 
Yapmak istediğinizi doğru anladıysam veri gidiyor ama sayfada göremiyorsunuz. Çünkü; statefulwidget ınızın durumunun güncellemesini setState ile hiç bir yerde tetiklememişsiniz. Dolayısıyla ekranda önceki hali görünüyor. Güncellenmiş hali değil.
Evet butona yada işlemi yaptığınız yerde setstate etmeniz gerkiyor. Bunu göre durum değişikliği olacak ve flutter ekranı yeniden oluşturacak ve girmiş olduğunuz değeri ilgili yere ekleyecek. Print ile çıktı alırsınız çünkü terminal ekranına basıyor bilgiyi emülatöre değil.
 
Evet butona yada işlemi yaptığınız yerde setstate etmeniz gerkiyor. Bunu göre durum değişikliği olacak ve flutter ekranı yeniden oluşturacak ve girmiş olduğunuz değeri ilgili yere ekleyecek. Print ile çıktı alırsınız çünkü terminal ekranına basıyor bilgiyi emülatöre değil.
baska bı mantık hatası var sankı. dedıgınızı yaptım hocam dogru atlamısım set state fonksıyonunu yıne eklemedı.
 
Body kısmına _mesajlar dizesi ile beslenen bir listview eklemeli ve olusturdugunuz Veri nesnesini _mesajlar dizisine setstate içinde eklemelisiniz.

new ListView.builder
(
itemCount: _mesajlar.length,
itemBuilder: (BuildContext ctxt, int index) {
return new Template(_mesajlar[index]);
}
)
 
Body kısmına _mesajlar dizesi ile beslenen bir listview eklemeli ve olusturdugunuz Veri nesnesini _mesajlar dizisine setstate içinde eklemelisiniz.

new ListView.builder
(
itemCount: _mesajlar.length,
itemBuilder: (BuildContext ctxt, int index) {
return new Template(_mesajlar[index]);
}
)
deneyecegım tesekkur ederım yardımınız ıcın
 
setState'e t1.clear() eklerseniz aşağıdaki gibi. Sanırım daha kullanışlı olur hocam. Şimdi tekrar denerken fark ettim.
setState(() {
_mesajlar.add(v);
t1.clear();
});
Hocam tesekkur ederım. evet ıstedıgım buydu temelde aslında. Hocam hazır bulmusken ikisey sorayım sıze. textfıeld eklerken has sıze hatası alıyordum genelde. bu hatayı neden verdıgını anlamıyorum
2. soruda su :
.map((n) => Template(nesne: n,)).toList(), su satırı anlatabılır mısınız?
 
Hocam, öncelikle şunu belirteyim; flutter ile bende yeni uğraşıyorum, öğreniyorum. Çok tecrübeye sahip değilim.
2. sorunuzun cevabı: Burada öncelikle map metodu list sınıfından n aracılığı ile her bir nesnenin referansını elde etmemizi sağlıyor. (n)=>Template(nesne:n) ifadesi anonim fonksiyon. n referansını parametre olarak gönderiyor ve her bir n referansı ile yeni bir Template(nesne:n) nesnesi oluşturarak return ediyoruz. Yani n referans olarak gelen her bir "Veri" nesnesi ile yeni bir "Template" nesnesi oluşturuyoruz ve iteratif obje(map) haline getirmiş olarak map metodundan geri alıyoruz. .toList() arcılığı ile widget listesi haline getiriyoruz. <Widget>[] ifadesini hatırlarsınız zaten. Böylelikle eğer "Veri" nesnesi listesinde eleman varsa onlar aracılığı ile ekranda görüntülenebilecek widget listesini oluşturmuş olduk.
https://api.dart.dev/stable/2.3.1/dart-core/Iterable/map.html
https://stackoverflow.com/questions/49941361/dart-mapping-a-list-list-map
1. sorunuzu örnek kod eşliğinde sorabilirseniz bende çözüm bulmaya çalışırım. Takdir edersiniz ki insan en iyi karşılaştığı problemlerden öğrenir. Sizin probleminize çözüm ararken bende bir şey daha tecrübe etmiş, öğrenmiş olurum.
 
Son düzenleme:
Hocam, initState() bir defa stateful widget'ın ilk oluştuğu esnada çalışıyor.( kurucu metodlara benzettim.) O an üzerinde çalıştığınız stateful widget'da durum değişikliğini setState() ile build() fonksiyonunu tetiklemek suretiyle yönetiyorsunuz. build() fonksiyonu uygulamamızı widgetlarla bina ettiğimiz yer... setState() her çağrıldığında build() yeniden çalıştırılıyor.
https://api.flutter.dev/flutter/widgets/State/initState.html
https://api.flutter.dev/flutter/widgets/State/setState.html
https://api.flutter.dev/flutter/widgets/State/build.html
https://api.flutter.dev/flutter/widgets/State/dispose.html
dispose() ise sanki OOP'deki yıkıcı metod gibi. Widget(Nesne) yok edilmeden hemen önce çalışıyor.
 
Son düzenleme:
Arkadaşlar birçok kişi gibi flutter la yeni tanıştık.
aciklamalar adlı bir liste elenaından json yardımıyla sira no,baslik ve icerik çekiliyor.
içeriğe route verildiğinde gidilen sayfada title'ı dinamik yapmak istiyorum.
json veriye tarih değişkeni tanımlayıp tarih değişkenini title a aktarmak istiyorum fakat indexi çekemediğim için işlem olmuyor.
Kodlara göre yardımcı olabilecek var mıdır?

uc.jpg
dort.jpg
 
Arkadaşlar birçok kişi gibi flutter la yeni tanıştık.
aciklamalar adlı bir liste elenaından json yardımıyla sira no,baslik ve icerik çekiliyor.
içeriğe route verildiğinde gidilen sayfada title'ı dinamik yapmak istiyorum.
json veriye tarih değişkeni tanımlayıp tarih değişkenini title a aktarmak istiyorum fakat indexi çekemediğim için işlem olmuyor.
Kodlara göre yardımcı olabilecek var mıdır?

Ekli dosyayı görüntüle 66232 Ekli dosyayı görüntüle 66233
Hocam, kodlarınızı doğru okuyorsam eğer sizin detaypage'e gönderdiğiniz referansı aldığınız değişken icerik. Ve değişken türü string.... Ne gönderiyorsunuz tam olarak çözümleyemedim. Şu anki görünümde gerçekleştirmek istediğiniz ile uyguladığınız yöntemde sanki ciddi hatalar var.
 
https://paste.ubuntu.com/p/CRmfr9S6N5/ tam hali hocam.
Hocam içerik vs çekiyorum onda bir problem yok.yapmak istediğim şuydu.
sliver'a bir title koyucam o title dinamik olucak.
yine json dan çekicem
Hocam, öncelikle sliverdaki title koyacak ve dinamik olmasını istiyorsanız şu anki bilgilerim ile. Sliver'ın içinde bulunduğu ana root widgetın stateless yerine stateful olması gerektiğini düşünüyorum. Onun haricinde title a yazılacak veriyi setState() ile zamana bağlı olarak güncellemeniz yeterli olur diye düşünüyorum. Tabi ki yapmak istediğinizi doğru anladıysam. Ben title'ı bu elektroni tabelalalardaki gibi zaman içerisinde değiştirmek istediğinizi anladım. Yukarıda yazmış olduğum gibi setState() dediğiniz an zaten root widgetınız içinde yer alan build fonk. yeniden çalıştırılacağı için yeni verilerinizle inşa edilecek ara yüzünüz.
 
Hocam, öncelikle sliverdaki title koyacak ve dinamik olmasını istiyorsanız şu anki bilgilerim ile. Sliver'ın içinde bulunduğu ana root widgetın stateless yerine stateful olması gerektiğini düşünüyorum. Onun haricinde title a yazılacak veriyi setState() ile zamana bağlı olarak güncellemeniz yeterli olur diye düşünüyorum. Tabi ki yapmak istediğinizi doğru anladıysam. Ben title'ı bu elektroni tabelalalardaki gibi zaman içerisinde değiştirmek istediğinizi anladım.
aynen o şekilde hocam fakat;statefull yaptığımda indexi çekemedim...
 
Hocam çözemedim açıkçası.indexi tanıtıyorum null gönderiyor.Sizin dediğiniz gibi ama ne şekilde kullanılacak veya nerde kullanılacak orası önemli.İlginize teşekkürler
 
Geri
Üst