The grid view is basically similar to the list view in which the elements are located in a static grid. It extracts views from adapters as scrollable by the user.
The table layout is a layout manager and does not require scrolling if necessary. This means you need to put it in the scroll. This means that all the data you display must be filled up in the TableLayout, so ScrollView knows how much space it should scroll. It also does not give you direct selection or interaction, because TableLayout has no elements, it is just a layout manager.
You should also use an adapter-based view where you need to scroll a significant amount of data. Thus, it seems that the appearance of the grid will be more appropriate in the situation when you are working.
source share