Instead of creating a ListView, create a ListView.builder
that takes two key parameters: the initial length of the list,
and an item builder function.

The item builder function is similar to the getView function
in an Android adapter; it takes a position,
and returns the row you want rendered at that position.

Finally, but most importantly, notice that the onTap() function
doesn’t recreate the list anymore, but instead adds to it.

For more information, see
Your first Flutter app codelab.

Working with text

How do I set custom fonts on my text widgets?

In Xamarin.Forms, you would have to add a custom font in each native project.
Then, in your Element you would assign this font name
to the FontFamily attribute using filename#fontname
and just fontname for iOS.

In Flutter, place the font file in a folder and reference it
in the pubspec.yaml file, similar to how you import images.

fonts