I want to use RecycleView in my XMPP client for chat history, to improve performance over BoxLayout. The chat message can be of various length, and the view widget is a BoxLayout including several sub-widgets. When using the RecycleView, I'm running into the following error message: [CRITICAL] [Clock ] Warning, too much iteration done before the next frame. Check your code, or increase the Clock.max_iteration attribute
I've made a small Python script to reproduce the issue. As viewclass I'm using a BoxLayout and inside a simple Label. I'm using a list comprehension to generate growing texts, so the widget will grow in size (to simulate various message length in a chat).
With variable size, I'm running into the same issue. If I use fixed text, or if I use a fixed size in the BoxLayoutheight instead of self.minimum_height, the clock issue doesn't happen (but of course I then don't have the desired behaviour).
It seems that RecycleView is badly working with a BoxLayout of variable height.
Thi code show 300 Label with growing text (row index + "test" repeated multiple times) in a RecycleView. expected result: the 300 Label are showed properly and the UI is highly reactive when scrolling. actual result: the message [CRITICAL] [Clock ] Warning, too much iteration done before the next frame. Check your code, or increase the Clock.max_iteration attribute is showed repetitively, the UI is messy and not reactive. The bug is especially visible at the top of the list.
The text was updated successfully, but these errors were encountered:
It seems that I've found a workaround by settings the height of the root BoxLayout using on_size in in the Label instead of the self.minimum_size, that then work as expected (still got one [CRITICAL] [Clock ] Warning, too much iteration done before the next frame. Check your code, or increase the Clock.max_iteration attribute though, but without visible consequence in the UI).
Below is the code with the workaround, it's working but still I think self.minimum_height should work and then there is a bug in RecycleView.