🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / FLUTTER / Widgetler ve özellikleri

1-) FLUTTER - Widgetler ve özellikleri

 

Expanded(
  child:

 

yukarıdaki kod ile taşmaları engelleyebilirsin. sığmayan birşey olursa expanded içine al o halleder xD

 

 

 

alignment: Alignment.center, // çocuğu ortalar

textAlign: TextAlign.center, // yazıyı ortalar

 

constraints: BoxConstraints(// max min genişlik yükseklik verebiliriz
      maxHeight:
200,
      maxWidth:
200,
      minHeight:
200,
      minWidth:
200),
),

 

constraints: BoxConstraints.expand(),  // parantini kaplar

 

margin: EdgeInsets.all(10), // dıştan her taraftan 10 px bırakır . padding kullanımı aynıdır ama içten

margin: EdgeInsets.only(left: 5,top: 22,right: 21,bottom: 10), // bır farklı kullanımı

 mainAxisAlignment --> x ekseni için geçerli

 crossAxisAlignment --> y ekseni için geçerli

 

mainAxisAlignment: MainAxisAlignment.center // Bulunduğum düzlemdeki itemleri ortalar

mainAxisSize: MainAxisSize.min, // wrapcontent

mainAxisSize: MainAxisSize.max, // matchparent

 

Aşaüğıdakiler children lar içindir vs...

mainAxisAlignment: MainAxisAlignment.spaceEvenly, // eşit parçaya böler

mainAxisAlignment: MainAxisAlignment.spaceBetween, // sola ve sağa yaslamalı eşit parçalara böler

mainAxisAlignment: MainAxisAlignment.spaceAround, // soldan ve sağdan 5 ise itemler arası 10 px olur

 

crossAxisAlignment: CrossAxisAlignment.stretch, // ters düzlemi kaplar

 

 

Weight ile ayarlamak istersen flex kullanmalısın onun içinde expanded

Expanded(
  child:
Container(
    child:
Icon(
      Icons.
ac_unit,
      size:
64,
    ),
  ),
  flex:
2,
),

Expanded(
  child:
Container(
    child:
Icon(
      Icons.
ac_unit,
      size:
64,
    ),
  ),
  flex:
4,
),

 

 

ortalamak(center) container için

body: Center(
    child:
Container(
  ..)),

 

 

 

 

 

Container'ın içini yuvarlamak için BoxDecoration KULLAN

body: Center(child: Container(

 padding: EdgeInsets.all(20),

  child: FlutterLogo(
    size:
128,
    textColor:
Colors.blue,
    style:
FlutterLogoStyle.stacked,

  ),
  decoration:
BoxDecoration(shape: BoxShape.circle,color: Colors.black),
)),

 

 

BORDER KULLANMAK İÇİN ÖRNEK

body: Center(child: Container(
  padding:
EdgeInsets.all(20),
  child:
FlutterLogo(
    size:
128,
    textColor:
Colors.blue,
    style:
FlutterLogoStyle.stacked,

  ),
  decoration:
BoxDecoration(shape: BoxShape.rectangle,color: Colors.black,
  border:
Border.all(width: 4,color: Colors.white),
    borderRadius:
BorderRadius.circular(30)
  ),
)),

 

 

 

RESİM EKLEME pubspec.yaml -> - assets/images/rmos.png

child: Container(
  width:
400,
  height:
500,
  decoration:
BoxDecoration(
    color:
Colors.orange,
    shape:
BoxShape.rectangle,
    image:
new DecorationImage(
      image:
AssetImage('assets/images/rmos.png'),
      fit:
BoxFit.cover, // stretch

    ),
  ),
)),

 

gölgelendirme için BoxShadow kullanabilirsin

 

 

 

ilk widgetin scaffold olsun bunun içinde appBar felan var .

child: Scaffold(
  appBar:
AppBar(title: Text("Rambo")),
),

 

 

 

Themanın rengini değiştirme

return MaterialApp(
  debugShowCheckedModeBanner:
false,
  title:
"Başlık",
  theme:
ThemeData(primarySwatch: Colors.purple),
  home:
MyHomePage(),
);

 

control + S sadece build context içini çalıştırır. yani hot reload yapar.

 

 

StatelessWidget  nedir = değerleri değişmeyecek sabir bir widgettir

StatefulWidget ise değerleri değişebilen widgettir o yüzden bunu kullan

 

 

setState nedir  = ilgili widgetin build metodunu tekrar tetikle demek . bu sayede ne olmuş oluyor. sayacı dışarıda arttırdık global o yüzden build metodu tetiklendi ve sayac dışarıda tanımlandıgı için sıfırlanmadı kaldıgı yerden devam ettti ve texte yazdı

 

 void sayacArttir(){
  setState(() {
    
_sayac++;
  });
}

 

 

TÜM RESİMLERİ TANITMAMAK İÇİN BASE KLASÖRÜN İSMİNİ pubspec.yaml dan aşağıdaki gibi ayarlarsın bu sayede tek tek resimleri tanıtmana gerek yok

 

assets:
  - assets/images/

 

kullanımı -> child: Image.asset("assets/images/rmos.png",fit: BoxFit.cover)

 

internetten almak için -> child: Image.network(_imageUrl,  fit: BoxFit.cover,)

 

fit: BoxFit.cover demek stretch demek yani tamamına kapla resmi yay demek

 

 

child: CircleAvatar(
  backgroundImage:
AssetImage("assets/images/rmos.png"),radius: 50,
),

 

açıklama : backgroundImage bizden imageprovider beklediği için AssetImage i kullandım çünkü Image.asset bize widget döndürür. internetten almak için ise NetworkImage(_imageUrl) i kullanırız

 

radius: 50 demek yarı çapı bu kadar olsun yani genişletir. arttırabiliriz.

 

IntrinsicHeight nedir = en yüksek row daki widgete göre diğerlerini büyütür demek ama crossAxisAlignment: CrossAxisAlignment.stretch, kullanmamız lazım

 

 

child: FadeInImage.assetNetwork(placeholder: "assets/images/load.gif", image: _imageUrl)

 

 

FadeInImage nedir : internetten resim yüklenirken gösterilecek resim demektir.

 

 

 

SliverAppBar -> aşağıdan yukarıya çektiğinde yukarıdaki resim küçülür

 2022 Şubat 14 Pazartesi
 1,195