Kivy 刷新布局(异步加载)

2022-01-15 00:00:00 python kivy

问题描述

我有一个 ListView,其中每个项目都有一个 AsyncImage 和一个标签.加载图像时,它会显示每个项目之间有间隙的布局.

I have a ListView that where each item has a AsyncImage and a Label. While the images load it shows the layout with gaps between each item.

-------

Item

-------

Item 

-------

当第一次交互发生(发生滚动)时,布局刷新并且间隙消失.

When the first interaction happens (a scroll occurs), the layout refreshes and the gaps disappear.

-------
Item    
-------  
Item 
-------

我真的很想在图像加载完成后刷新布局.如何刷新布局?

I'd really like to have the layout refresh when an image finishes loading. How do I refresh a layout?


解决方案

通常你可以通过调用 widget.canvas.ask_update().

Usually you can ask the widget to update it's canvas by calling widget.canvas.ask_update().

对于布局,您可以尝试通过调用 layout_instance.do_layout().

For a layout you could try triggering the layout of the widgets inside it by calling layout_instance.do_layout().

相关文章