CodeBlanks Logo Icon CodeBlanks

fit ve boyut

BoxFit ile görselin sığma davranışını öğrenirsin.

BoxFit nedir?

BoxFit, bir görselin kendisine ayrılan alana nasıl sığacağını belirleyen numaralandırıcıdır. Image widget'ının fit parametresi ile verilir. En sık kullanılan değerler cover, contain ve fill'dir; her biri farklı bir sığma davranışı sergiler.

Image.asset(
  'assets/p.png',
  fit: BoxFit.cover,
)

cover, fill ve diğer değerler

BoxFit.cover görseli en boy oranını koruyarak alana tamamen doldurur; taşan kısımlar kırpılır. BoxFit.fill ise alanı doldurmak için en boy oranını bozabilir. Diğer değerler arasında fitWidth, fitHeight, none ve scaleDown bulunur.

BoxFit.cover    // oran korunur, taşan kısım kırpılır
BoxFit.fill     // alan dolar, oran bozulabilir
BoxFit.contain  // tüm görsel görünür, boşluk kalabilir

Uygulama Image.network'e BoxFit.cover ver

Image.network ile https://picsum.photos/200 görselini göster ve fit parametresini BoxFit.cover yap.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          // Image.network ile görsel göster, fit parametresini cover yap
          child: null,
        ),
      ),
    );
  }
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

void main() {
  print('BoxFit.cover');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Image.network(
            'https://picsum.photos/200',
            fit: BoxFit.cover,
          ),
        ),
      ),
    );
  }
}

Beklenen çıktı

BoxFit.cover

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 BoxFit.contain ne yapar?

  • Görseli yalnızca genişletir
  • Görseli en boy oranını bozarak alana yayar
  • Görseli kırparak alana doldurur
  • Görseli en boy oranını koruyarak sığdırır, boşluk kalabilir Doğru cevap

Açıklama: BoxFit.contain görselin tümünü orantılı olarak gösterir; alan dolmazsa boşluk kalır. Kırpmak için cover kullanılır.

2 fit parametresine cover ver

Soru
Image.asset(
  'assets/p.png',
  fit: ____,
)
Cevap
Image.asset(
  'assets/p.png',
  fit: BoxFit.cover,
)

Açıklama: cover, görseli alana tamamen doldurup taşanı kırpar; contain boşluk bırakır.

3 BoxFit değerleri

Kavram Anlamı
BoxFit.cover Oranı korur, taşanı kırpar
BoxFit.contain Tüm görsel görünür, boşluk kalır
BoxFit.fill Oranı bozup alana yayar
BoxFit.scaleDown Küçültür ama büyütmez

Başlangıç bölümündeki tüm dersler