Lettore musicale: Informazioni sul brano
Fa parte della sezione Layout adattabili del percorso Flutter di Coddy. Lezione 27 di 30.
Sotto la copertina vanno la canzone e l’artista. Come il nome su un biglietto da visita, la canzone è la riga che l’occhio dovrebbe trovare per prima: grande e in grassetto. L’artista è una riga grigia più discreta sotto di essa.
La copertina è una forma grande e il titolo una piccola, quindi hanno bisogno di spazio tra loro, più di quanto ne serva tra il titolo e l’artista, che stanno bene insieme. È la spaziatura che raggruppa gli elementi a rendere uno schermo facile da leggere.
Sfida
FacileSotto l'immagine, aggiungi:
- un
SizedBox(height: 24) Midnight Drive, dimensione24e in grassetto- un
SizedBox(height: 4) The Night OwlsinColors.grey
Provalo tu
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),
),
),
),
],
),
],
),
),
),
);
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Layout adattabili
1Condividere una riga
Expanded riempie la rigaCondividere lo spazio con flexFlexible si adatta al suo elemento figlioSpacer tiene gli elementi separati4Dimensioni e breakpoint
Larghezza completa: double.infinityUna larghezza massimaDimensioni dello schermo: MediaQueryBreakpoint con LayoutBuilder7Progetto: Lettore musicale
Lettore musicale: Copertina dell’albumLettore musicale: Informazioni sul branoEsercitati da solo: Compilatore Flutter online