firstVisibleIndex
Returns the index of the first item that is visible on screen. The item may be partially visible.
This is used to save the scroll position when the view is unloaded.
This may temporarily be larger than the total number of items in the model. This will occur if the number of items in the model shrinks.