• 《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——RecycleView遍历并显示数据


    章节知识点总览

    5.6 RecycleView遍历并显示数据

            RecycleView遍历并显示数据用来看大型数据的选定部分,旨在防止生成大量用于显示数据的小部件带来的性能下降。

            一般情况下,我们将待显示数据添加到字典中,再将这些数据组成列表赋值给data属性,通过data生成视图,并根据需要选择对应的viewclass属性,再使用这些字典生成实例。

            5.6.1 使用方法

            其设计基于MVC(模型-视图_控制器)模式,实例化RecycleView时,它将自动创建视图和数据类,但是必须手动创建布局类型并将其添加到RecycleView中。在使用布局管理器时,布局管理器必须作为子级包含在RecycleView的小部件树中的某个位置,以便可以找到视图端口。

            实例: RecycleView遍历并显示数据的使用方法

            新建一个recycleview.py文件,在其中将待遍历显示的数据处理好并赋值给data属性,具体代码如下:

    注意:这里继承的时RecycleView遍历并显示数据的使用方法,而非之前类似的布局类 

    1. from kivy.app import App
    2. from kivy.uix.recycleview import RecycleView
    3. class RecycleViewWidget(RecycleView):
    4. def __init__(self,**kwargs):
    5. super().__init__(**kwargs)
    6. self.data = [{'text':str(x)}for x in range(100)]
    7. class RecycleViewApp(App):
    8. def build(self):
    9. return RecycleViewWidget()
    10. if __name__ == '__main__':
    11. RecycleViewApp().run()

            根据recycleview.py文件中RecycleViewApp()类 ,新建recycleview.kv文件,在文中使用Label标签来显示遍历的数据,并设置RecycleBoxLayout布局(非BoxLayout布局)布局排列子项,具体代码如下:

    1. <RecycleViewWidget>:
    2. viewclass:'Label'
    3. RecycleBoxLayout:
    4. default_size:None,dp(56)
    5. default_size_hint:1,None
    6. size_hint_y:None
    7. height:self.minimum_height
    8. orientation:'vertical'

            运行recycleview.py文件,结果如下图:

    4dd19151ae944e42963a19d5c9121bfd.png

            5.6.2 常用属性

            RecycleView常用属性

    属性说明
    data当前RecycleView使用的数据,格式为多个字典组成的列表,例[{'text':1},{'text':2}]
    viewclass当前layout_manager使用的视图类,例如:Label
    key_viewclass获取或设置当前的键
    view_adapter表示数据集中项目的视图,使用AliasProperty类设置
    layout_manager布局管理
    data_model维护数据集的数据模型
    refresh_from_data(*largs,**kwargs)数据更改时应调用此方法,此方法自动绑定到该类的on_data_changed()方法
    refresh_from_layout(*largs,**kwargs)当布局更改或需要更改时,应调用此方法,通常在布局参数已更改且需要更新计算布局时调用
    refresh_from_viewport(*largs)当窗口更改并且必须更新显示的数据时,应调用此方法,否则数据和布局都不会重新计算
    add_widget添加一个新的小部件作为此小部件的子级
    remove_widget(widget,*largs)从该小部件的子级中删除一个小部件

    上一篇:高级UX部件——Spinner选择框

    下一篇:高级UX部件——TabbedPanel选项面板

     

  • 相关阅读:
    LeetCode力扣刷题——更加复杂的数据结构
    网络与VPC之动手实验
    网络安全防御体系建设-防守实例
    94%预测准确率!手把手搭建CNN-AlexNet卷积神经网络框架
    基于蒙特卡洛的大规模电动汽车充电行为分析(Matlab代码实现)
    这些 function 的细节你都知道吗?
    【备忘录】JavaScript代码段儿
    一文读懂存内计算与近存计算的分类与应用
    spring boot validation使用
    基于Python开发的Excel数据分析系统(源码+可执行程序+程序配置说明书+程序使用说明书)
  • 原文地址:https://blog.csdn.net/lstef/article/details/127712655