Taşma Hatası
Coddy'nin Flutter Journey'sinin Her Ekrana Uyan Düzenler bölümünün bir parçası. Ders 5 / 30.
Telefon ekranı küçüktür. Bir Row öğesinin çocukları ekranın genişliğinden daha fazla genişliğe ihtiyaç duyduğunda Flutter, taştıkları kenara sarı ve siyah çizgiler çizer ve Konsol'a bir mesaj yazdırır:
A RenderFlex overflowed by 60 pixels on the right.Mesajı üç bölümde okuyun. RenderFlex, bir Row veya Column'dur. 60 piksel, çocukların ne kadar fazla büyük olduğunu belirtir. Sağda, satırın fazla geniş olduğu; altta ise sütunun fazla uzun olduğu anlamına gelir.
Sayı basit bir aritmetik işlemden gelir. Genişliği 150 piksel olan üç kutu 450 piksel gerektirir; telefonun genişliği 390 piksel olduğundan 60 piksel taşar. Çocukların toplam genişliğini 60 piksel azaltın, çizgiler kaybolur.
Bu kurstaki her kontrol 390 piksel genişliğinde bir telefonda çalışır; bu nedenle taşma olursa kontrol aynı mesajla başarısız olur.
Görev
KolayRun düğmesine bas ve sağ kenardaki şeritleri bul. Ardından her bir döşemeyi 120 piksel genişliğinde yap, böylece üçü de telefona sığar.
Kendin dene
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Trips')),
body: Column(
children: [
Row(
children: [
Container(
width: 150,
height: 100,
color: Colors.orange,
child: const Center(child: Text('Beach')),
),
Container(
width: 150,
height: 100,
color: Colors.green,
child: const Center(child: Text('Forest')),
),
Container(
width: 150,
height: 100,
color: Colors.blueGrey,
child: const Center(child: Text('City')),
),
],
),
],
),
),
);
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Her Ekrana Uyan Düzenler bölümündeki tüm dersler
1Bir Satırı Paylaşmak
Expanded Satırı Doldururflex ile Alanı PaylaşmakFlexible Çocuğunu SararSpacer Arayı Açar4Boyutlar ve Breakpoint’ler
Tam Genişlik: double.infinityMaksimum GenişlikEkran Boyutu: MediaQueryLayoutBuilder Breakpoint’leri2Taşma Hatası
Taşma HatasıTaşma Çözümü: GenişletmeTaşma Çözümü: KaydırmaTaşma Çözümü: SarmaSarma İçindeki Boşluk3Widget'ları Üst Üste Yerleştirme
Widget'ları Üst Üste YerleştirmeBir Köşeye KonumlandırmaBir Kutunun İçinde HizalamaSafeArea ve ÇentikKendi başına pratik yap: Online Flutter derleyicisi