How to avoid crashes because lists use a lot of memory

I am now using LVGL 7.4.
A BTN in the List contains an image and two labels with different fonts, which occupy about 800 bytes of memory.
I now want to display around 200 pieces of this data, but it is too memory intensive, and I have no good way to reduce the memory usage.
Now I want to display 30 pieces of data at a time. According to the detection, I will slide to the top or bottom of the List, delete the BTN where the List is not displayed on the interface, and add BTN in the sliding direction.
But don’t know how to set the events that List slides to the top or bottom?
I don’t know if that’s going to work.
Is there any other better way?

Virtual lists are an important feature to support, especially on embedded devices. Unfortunately, I can’t think of an easy way to detect reaching the top/bottom of the page without some ugly, version-specific hacks.

What I can suggest is to create pagination buttons below the list, and have the user go to the next page if they wish to continue scrolling.

It’s also worth pointing out that without a search bar or some other form of categorization, a long touchscreen list can be quite aggravating to a user, especially if the item they want lies somewhere in the middle. Lists on a PC with a classic scrollbar suffer less from this issue, because the user can simply remember roughly where to position the scroll handle. However, on LVGL, a user cannot manually position the scrollbar using an input device (only code can).