Although I think that Patryk does great in contributing to this discussion, somehow the original topic gets snowed under, which was, how could ListViews be visualisations of simple lists again.
Long ago, a ListView was a visualisation of a list, where the elements were strings. You could change the font used and the color, and such simple things. Probably just what is needed for most of the ListView usage, at least for what I needed.
Then came the Layouts. So now you can have elements that are not strings, but precisely they have three parts: an image, main text and detail text. That is nice, but very restrictive. What if I need two images or three pieces of text?
We were discussing OOP principles eralier, but I think this setup is unclear in this respect. You would like to have objects that have a specific Layout, and lists of those objects would be able to be visualized in a ListView.
That would allow you to define multiple Layouts and have flexible listviews (just as there seem to be extensions that do this).
The main problem is that I do not see how you could define a visualization for such a layout, like you could define for example a print() method, as in Java, and implement that for your Layout class. The ListView would just call the print() method on each element, and you would see your list. But, as said, you cannot do that in AppInventor, I think.
Anyway, could we please just have a SimpleListView that contains a list of strings, and maybe a ComplexListView, for which you can define complex Layouts yourself.
And it still works this way? The component allows you to progressively add functionality to the list view, but by default setting a list of strings and adjusting the properties you've mentioned.
The same year we had the layout addition from GSOC we also had a version that would allow for custom layouts. However, that implementation was much more complicated and while we still want to get it out for the time being it has been tabled until we have more time to work on it.
The idea in the previously mentioned project was that there was a visual editor to lay out a smaller subset of UI components like Labels, Images, etc. The ListView would replicate the layout for each entry in the list and populate it.
I think that for simple implementations of various things, two texts and an image are enough in many cases. For example, chatting. Kodular has the function of changing the image display location, a nice function but it would be more useful if we could change the image location depending on the loaded data. For example, the first element has an image on the right and the text is right-aligned. The second element has the image on the left and the text is left aligned. It would be possible to add another field to the dictionary, or the imageName input would accept an optional dictionary that would include data from which page the image should be taken. I could implement this.
I think that the Grid view for the ListView, which I could add, would be helpful in building apps that display, for example, photo galleries.
As for the simple list view, it's still there. Just add the ListView component and do not modify the properties. It is true that the functionality you showed in the first post was lost, but as you can see, it is easy to fix an additional variable.
I spent some time thinking about a class diagram and I asked Bing Chat to draw it for me (using PUML). This is what it came up with:
The thing that I really wanted to point out is that a Layout does not belong to the ListView, but to the ListViewElement, which should be a separate component. And, if possible, the Layout should be a separate component also.
Apart from being more true OOP, it would have the advantage that Layouts could be added as needed, without bloating the ListView. It would make it possible to vary the Layout more easily, it would even be possible to give every element a different Layout.
The forum does not really want me to add more discussion, because I marked it solved a while ago, so I will stop. And yes, a GridView would be nice.