🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / listview kullanımı vs

1-) FLUTTER - listview kullanımı vs

 

class Ogrenci{
    
int id;
    
String ad;
    
String soyad;
    
Ogrenci(this.id, this.ad, this.soyad);
}

 

List<Ogrenci> tumOgrenciler=List.generate(20, (index) => Ogrenci(index, "rambo "+index.toString(), "haber "+index.toString()));

 

PERFORMANSLI LİSTVİEW KULLANIMI

 

body: ListView.builder(

// physics: const NeverScrollableScrollPhysics(), // scroll ozellıgını kapatır

// shrinkWrap: true, // tam ekran sığdırır taşmıyorsa kullanabilirsin


  itemBuilder: (
BuildContext context2, int index) {
    
var ogrenci = tumOgrenciler[index];
    
return Card(
      color: index %
2 ==0 ? Colors.orange.shade100 : Colors.purple.shade100,
      child:
ListTile(
        onTap: (){
          print(
"Tıklandı "+ogrenci.ad);
        },
          leading:
CircleAvatar(child: Text(ogrenci.id.toString())),
          title:
Text(ogrenci.ad),
          subtitle:
Text(ogrenci.soyad),
          trailing:
Icon(Icons.real_estate_agent)),
    );
  },
  itemCount:
tumOgrenciler.length,
),

 

 

bir diğer örnek

 

body: ListView.builder(
  itemBuilder: (
BuildContext context2, int index) {
    
var ogrenci = tumOgrenciler[index];
    
return ListTile(
        leading:
CircleAvatar(child: Text(ogrenci.id.toString())),
        title:
Text(ogrenci.ad),
        subtitle:
Text(ogrenci.soyad),
        trailing:
Icon(Icons.real_estate_agent));
  },
  itemCount:
tumOgrenciler.length,
),

 

bir diğer örnek her 2 elemandan sonra çizgi çek diyebiliriz separated  nedir ? listedeki her elemandan sonra ne yapim demek

 

body: ListView.separated(
  itemBuilder: (
BuildContext context2, int index) {
    
var ogrenci = tumOgrenciler[index];
    
return Card(
      color: index %
2 == 0
          
? Colors.orange.shade100
          
: Colors.purple.shade100,
      child:
ListTile(
          onTap: () {
            print(
"Tıklandı " + ogrenci.ad);
          },
          leading:
CircleAvatar(child: Text(ogrenci.id.toString())),
          title:
Text(ogrenci.ad),
          subtitle:
Text(ogrenci.soyad),
          trailing:
Icon(Icons.real_estate_agent)),
    );
  },
  itemCount:
tumOgrenciler.length,
  separatorBuilder: (context, index) {
    
if ((index+1) % 2 == 0) {
      
return Divider(
        color:
Colors.red,
        thickness:
5,
      );
    }
    
return return SizedBox();

  },
),

 

 

PERFORMANSSIZ LİSTVİEW KULLANIMI

 

body: Container(
  child:
ListView(

shrinkWrap: true,

scrollDirection: Axis.horizontal,

    reverse: true,
    children:
tumOgrenciler
        
.map((ogrenci) => ListTile(
        leading:
Icon(Icons.add),
        title:
Text(ogrenci.ad),
        subtitle:
Text(ogrenci.soyad),
        trailing:
Icon(Icons.real_estate_agent)
            ))
        .toList(),
  ),
),

 

reverse true dersen listeyi ters çevirir

ListTile  sağdaki resimdeki gibi bir yapıdır ve hazırdır.

 

 

shrinkWrap = true demek içindekiler kadar yer kapla demek

scrollDirection: Axis.horizontal demek listeyi yatay yapar

 2022 Mart 14 Pazartesi
 398