Dzisiaj nauczycie się tworzyć we Flutterze klikalną listę utworów.
Zacznijmy od bazowego kodu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Muzyczna Lista', home: Scaffold( appBar: AppBar( title: Text('Muzyczna Lista'), ), body: Center( child: Text('Witaj Świecie'), ), ), ); } } |
Po uruchomieniu takiej aplikacji powinniśmy zobaczyć prosty ekran z napisem Witaj Świecie
Tworzenie Listy
Na potrzeby poradnika będziemy używać stałej zmiennej która bedzie przechowywać tytuły piosenek bedzie ona wyglądać tak, final _songs =
Flutter opiera się na widgetach i takie będziemy tworzyć w celu wyświetlania listy piosenek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | class _MusicListState extends State<MusicList> { final _songs = <String>["Shape Of You", "Despacito","Sugar"]; // listę piosenek należy uzupełnić :) final _biggerFont = TextStyle(fontSize: 18.0); Widget _buildSuggestions() { return ListView.builder( padding: EdgeInsets.all(16.0), // dodanie odstępów itemCount: _songs.length * 2, // Długość listy to 2 * ilość tytułów ponieważ co druga komórka w liście to Divider() czyli pozioma linia odzielająca komórki itemBuilder: /*1*/ (context, i) { //Jeśli index komórki jest parzysty to zwracamy poziomą linie (Divider) jeśli nie to budujemy komórkę z tytułem piosenki if (i.isOdd) return Divider(); /*2*/ final index = i ~/ 2; return _buildRow(_songs[index]); }); } Widget _buildRow(String songTitle) { // Tutaj tworzymy komórkę piosenki z jej tytułem return ListTile( title: Text( songTitle, style: _biggerFont, ), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Muzyczna Lista'), ), body: _buildSuggestions(), ); } } class MusicList extends StatefulWidget { @override State<MusicList> createState() => _MusicListState(); } |
Aby zacząć wyświetlać naszą liste w aplikacji wystarczy zaaktualizować naszą główną strukturę w ten sposób
1 2 3 4 5 6 7 8 9 | class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Muzyczna Lista', home: MusicList(), ); } } |