Temel Yerleşim Widget'ları
Yapılandırılmış ve duyarlı kullanıcı arayüzleri oluşturmak için Row, Column, Container ve Stack gibi temel yerleşim widget'larında uzmanlaşın.
Temel Yerleşim Widget'ları, CoddyKit'te ücretsiz bir Flutter Mobile Development dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Flutter Mobile Development öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Flutter Mobile Development kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Why Layouts Matter
In Flutter, everything is a widget! To build complex and beautiful user interfaces, you need to arrange these widgets on the screen.
Layout widgets are special widgets designed to help you organize other widgets, defining their size, position, and how they interact with each other.
Meet the Container
The Container widget is one of the most versatile layout widgets. Think of it as a customizable box that can hold a single child widget.
You can use it to:
- Add padding or margins
- Set background colors or decorations
- Define specific width and height
- Transform its position or rotation
Simple Colored Box
Let's create a basic Container with a child Text widget. Notice how we set its color and padding.
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(
home: Scaffold(
appBar: AppBar(title: const Text('Container Demo')),
body: Center(
child: Container(
padding: const EdgeInsets.all(20.0),
color: Colors.blueAccent,
child: const Text(
'Hello from Container!',
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
),
),
);
}
}Horizontal with Row
When you need to arrange multiple widgets side-by-side horizontally, the Row widget is your go-to. It takes a list of widgets as its children.
Row automatically tries to fit its children along the horizontal axis, and you can control their alignment within the row.
Row of Buttons
Here's how you can place three buttons next to each other using a Row. We'll add some spacing between them.
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(
home: Scaffold(
appBar: AppBar(title: const Text('Row Demo')),
body: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
ElevatedButton(onPressed: () {}, child: const Text('Button 1')),
ElevatedButton(onPressed: () {}, child: const Text('Button 2')),
ElevatedButton(onPressed: () {}, child: const Text('Button 3')),
],
),
),
),
);
}
}Vertical with Column
Just as Row arranges widgets horizontally, the Column widget arranges them vertically, one below the other.
It also takes a list of children and lets you control their vertical alignment.
Stacked Text Fields
Let's create a simple login-like form using a Column to stack two TextFields and a button vertically.
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(
home: Scaffold(
appBar: AppBar(title: const Text('Column Demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Padding(
padding: EdgeInsets.all(8.0),
child: TextField(
decoration: InputDecoration(labelText: 'Username'),
),
),
const Padding(
padding: EdgeInsets.all(8.0),
child: TextField(
obscureText: true,
decoration: InputDecoration(labelText: 'Password'),
),
),
ElevatedButton(onPressed: () {}, child: const Text('Login')),
],
),
),
),
);
}
}Aligning Children
Both Row and Column use two important properties for alignment:
mainAxisAlignment: How children are positioned along the primary axis (horizontal forRow, vertical forColumn). Examples:start,center,end,spaceAround.crossAxisAlignment: How children are positioned along the perpendicular axis (vertical forRow, horizontal forColumn). Examples:start,center,end,stretch.
These give you fine control over your layouts!
Overlapping with Stack
Sometimes you need to place widgets on top of each other, like text over an image. That's where the Stack widget comes in.
Stack allows you to layer multiple children widgets. You can control their exact position within the stack using the Positioned widget.
Image with Text Overlay
Let's put some text directly on top of an image using a Stack. We'll use Positioned to place the text precisely.
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(
home: Scaffold(
appBar: AppBar(title: const Text('Stack Demo')),
body: Center(
child: SizedBox(
width: 300,
height: 200,
child: Stack(
children: <Widget>[
Image.network(
'https://picsum.photos/300/200',
fit: BoxFit.cover,
),
const Positioned(
bottom: 10,
left: 10,
child: Text(
'Beautiful Scenery',
style: TextStyle(
color: Colors.white,
fontSize: 20,
fontWeight: FontWeight.bold,
shadows: [
Shadow(blurRadius: 5, color: Colors.black)
],
),
),
),
],
),
),
),
),
);
}
}Layout Challenge
Which of the following widgets are primarily used for arranging multiple children widgets in a single direction (either horizontally or vertically)?
Layouts Mastered!
Great job! You've now mastered the fundamental layout widgets in Flutter:
Container: A versatile box for single children, offering padding, margin, color, and size control.Row: Arranges multiple children horizontally.Column: Arranges multiple children vertically.Stack: Layers children on top of each other, often used withPositioned.
Understanding these is key to building any Flutter UI!
Sıkça Sorulan Sorular
“Temel Yerleşim Widget'ları” dersi ücretsiz mi?
Evet — “Temel Yerleşim Widget'ları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Flutter Mobile Development kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Flutter Mobile Development kursu toplamda 4 dersten oluşur.
“Temel Yerleşim Widget'ları” dersinde ne öğreneceğim?
Yapılandırılmış ve duyarlı kullanıcı arayüzleri oluşturmak için Row, Column, Container ve Stack gibi temel yerleşim widget'larında uzmanlaşın. Flutter Mobile Development ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Flutter Mobile Development öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Flutter Mobile Development, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Temel Yerleşim Widget'ları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Flutter Mobile Development dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Flutter Mobile Development dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Stateless ve Stateful Widget'lar
- Temel Yerleşim Widget'ları
- Etkileşimli Kullanıcı Arayüzü Öğeleri
- ListView ile Kaydırılabilir Listeler Oluşturma