Müzik Çalar: İlerleme Kaydırıcısı
Coddy'nin Flutter Journey'sinin Her Ekrana Uyan Düzenler bölümünün bir parçası. Ders 28 / 30.
Bir oynatıcı, şarkının ne kadarının çalındığını gösterir ve başka bir noktaya sürüklemenize olanak tanır. Bu, değeri durum içinde tutulan bir Slider'dır.
Altında iki süre yer alır: solda ne kadarının çalındığı, sağda şarkının uzunluğu. Aralarındaki bir Spacer bulunan Row, bunları iki uca iter; böylece her telefonda kaydırıcının uçlarıyla hizalanırlar.
const Row(
children: [
Text('0:00'),
Spacer(),
Text('4:00'),
],
)Görev
KolaySanatçının altına ilerleme çubuğunu ekle:
Stateiçindedouble _position = 0.3;alanı- bir
SizedBox(height: 16), ardından_positiondeğerini gösteren ve hareket ettirildiğinde yeni değerisetStateiçinde saklayan birSlider - altında, sol kenarda
1:12ve sağ kenarda3:45bulunan birRow
Kendin dene
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: Scaffold(
appBar: AppBar(title: const Text('Now Playing')),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
children: [
Stack(
children: [
Container(
width: double.infinity,
height: 300,
decoration: BoxDecoration(
color: Colors.deepPurple,
borderRadius: BorderRadius.circular(24),
),
child: const Center(
child: Icon(Icons.album, size: 120, color: Colors.white),
),
),
Positioned(
top: 12,
right: 12,
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.black54,
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'HD',
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
),
),
],
),
const SizedBox(height: 24),
const Text(
'Midnight Drive',
style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
),
const SizedBox(height: 4),
const Text('The Night Owls', style: TextStyle(color: Colors.grey)),
],
),
),
),
);
}
}
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’leri7Proje: Müzik Çalar
Müzik Çalar: Albüm KapağıMüzik Çalar: Şarkı Bilgileri3Widget'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