The equivalent to a ListView in Flutter is … a ListView!

Due to Flutter’s immutable widget pattern,
you pass a list of widgets to your ListView,
and Flutter takes care of making sure that scrolling is fast and smooth.

How do I know which list item has been clicked?

In Xamarin.Forms, the ListView has an ItemTapped method
to find out which item was clicked.
There are many other techniques you might have used
such as checking when SelectedItem or EventToCommand
behaviors change.

In Flutter, use the touch handling provided by the passed-in widgets.

How do I update a ListView dynamically?

In Xamarin.Forms, if you bound the
ItemsSource property to an ObservableCollection,
you would just update the list in your ViewModel.
Alternatively, you could assign a new List to the ItemSource property.