list map string string flutter code example Example: flutter List> example //flutter List> example // this is a simple example to show how you can use a List // with a number of widgets, ideally you should split your classes into // separate files in order to trim down you Widget Tree. import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget{ @override Widget build(BuildContext context){ return MaterialApp( title: 'Hello Phrases', home: _MyHomePage(), ); } } class _MyHomePage extends StatefulWidget{ @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<_MyHomePage> { int phraseCount = 0; final List> myPhraseList = [ {'phrase': 'Phrase 1 some interesting phrase'}, {'phrase': 'Phrase 2 and yet another interesting phrase'} ]; void nextPhrase(){ setState((){ phraseCount += 1; }); } void resetPhrase(){ setState((){ phraseCount = 0; }); } @override Widget build(BuildContext context){ return Scaffold( appBar: AppBar( title: Text('The Quote App'), ), body: Container( padding: EdgeInsets.all(20.0), child: phraseCount < myPhraseList.length ? PhraseLogic(nextPhrase: nextPhrase, myPhraseList: myPhraseList, phraseCount: phraseCount) : ResetPhrase(resetPhrase: resetPhrase), ), ); } } class PhraseLogic extends StatelessWidget { final List> myPhraseList; final int phraseCount; final Function nextPhrase; PhraseLogic({this.nextPhrase, this.phraseCount, this.myPhraseList}); @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text(myPhraseList[phraseCount]['phrase']), SizedBox(height: 20.0), RaisedButton( child: Text('Next Phrase'), onPressed: nextPhrase, ), ], ); } } class ResetPhrase extends StatelessWidget { final Function resetPhrase; ResetPhrase({this.resetPhrase}); @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Text('All done!!!'), SizedBox(height: 20.0), RaisedButton( child: Text('Reset Phrase'), onPressed: resetPhrase, ), ], ); } }