目录
- RecycleView 布局
LayoutChangeExceptionLayoutSelectionBehaviorRecycleLayoutManagerBehaviorRecycleLayoutManagerBehavior.compute_visible_views()RecycleLayoutManagerBehavior.get_view_index_at()RecycleLayoutManagerBehavior.goto_view()RecycleLayoutManagerBehavior.key_viewclassRecycleLayoutManagerBehavior.refresh_view_layout()RecycleLayoutManagerBehavior.set_visible_views()RecycleLayoutManagerBehavior.viewclass
RecycleView 布局¶
在 1.10.0 版本加入.
布局(Layouts)负责处理 RecycleView 中视图的呈现。
警告
此模块高度实验性,其API未来可能发生变化,且当前文档尚不完整。
- class kivy.uix.recycleview.layout.LayoutSelectionBehavior(**kwargs)[源代码]¶
-
LayoutSelectionBehavior可以与RecycleLayoutManagerBehavior结合使用,使其派生类具备类似CompoundSelectionBehavior为普通布局添加选择行为的能力。RecycleLayoutManagerBehavior管理其子组件的方式与普通布局或组件不同,因此本类调整了基于CompoundSelectionBehavior的选择机制,使其也能与RecycleLayoutManagerBehavior协同工作。与
CompoundSelectionBehavior类似,用户可以通过键盘或触摸进行选择,这会调用select_node()或deselect_node(),也可以直接调用这些方法。当某个项目被选中或取消选中时,会调用apply_selection()。参见apply_selection()。- apply_selection(index, view, is_selected)[源代码]¶
将选择应用到视图。当视图显示时,内部会调用此方法,以将其显示为选中或未选中状态。
当调用
select_node()或deselect_node()时,或者当视图需要刷新时,会调用此方法。其功能纯粹是更新视图以反映选择状态。因此,即使选择状态可能未发生变化,此函数也可能被多次调用。如果视图是
RecycleDataViewBehavior的实例,那么每次视图需要刷新选择状态时,都会调用其apply_selection()方法。否则,此方法负责应用选择。- 参数:
- index:整数
与视图关联的数据项的索引。
- view:控件
该数据项视图所对应的控件。
- is_selected:布尔值
该项是否被选中。
- deselect_node(node)[源代码]¶
取消选中可能已选中的节点。
当控制器取消选择一个节点时,会调用此方法;也可以从外部直接调用以取消选择节点。派生的小部件应重写此方法,并在调用时将节点更改为其未选中状态。
- 参数:
- node
要取消选择的节点。
警告
如果该方法被覆盖,派生控件必须使用super调用它。
- get_index_of_node(node, selectable_nodes)[源代码]¶
(内部)返回 node 在
get_selectable_nodes()返回的 selectable_nodes 中的索引。
- get_selectable_nodes()[源代码]¶
(内部)返回可被选择的节点列表。派生控件可以重写此方法以返回正确的列表。
此列表用于确定在组选择时要选中哪些节点。例如,当按下Home键时,将选中列表中的最后一个元素;按下PageDown键时,将从当前选中节点在此列表中的位置开始,按负的
page_count节点数移动(若按住Shift键,则添加)选择范围,依此类推。尽管如此,即使节点不在此列表中,它们仍可被选中。备注
动态修改此列表是安全的,包括移除、添加或重新排列其元素。即使节点不在列表中,也可以被选中。从列表中移除的已选中节点将保持选中状态,直到调用
deselect_node()方法。警告
布局会以相反的顺序显示其子组件。也就是说,
children的内容是从右到左、从下到上显示的。因此,在内部,此函数返回的元素索引会被反转,以便默认情况下适用于大多数布局,从而使最终结果保持一致,例如,home 虽然在视觉上会选择此列表中的最后一个元素,但在从上到下、从左到右计数时会选择第一个元素。如果不需要此行为,则应返回一个反转后的列表。默认返回
children。
- goto_node(key, last_node, last_node_idx)[源代码]¶
(内部)控制器使用此方法获取由键指示的位置处的节点。键可以是键盘输入,例如 pageup,或鼠标滚轮的滚动输入,例如 scrollup。'last_node' 是最后选中的节点,用于查找结果节点。例如,如果键是向上,则返回的节点是位于最后一个节点上方的一个节点。
它可以被派生的小部件覆盖。
- 参数:
- key
str,用于查找目标节点的字符串。它可以是任意键盘按键,也可以是鼠标滚轮上滚、下滚、右滚和左滚的字符串。如果字母快速连续输入,这些字母会在作为key传入之前被合并,可用于查找关联字符串以这些字母开头的节点。
- last_node
最后选中的节点。
- last_node_idx
在 get_selectable_nodes 列表中最后选中节点的缓存索引。如果列表未发生变化,则无需在该列表中查找 last_node 的索引。
- 返回:
元组,包含由键定位的节点及其在
get_selectable_nodes()列表中的索引。返回 (last_node, last_node_idx) 表示未找到节点。
- key_selection¶
用于检查数据项视图是否可以通过触摸或键盘选中的键。
key_selection是数据中的键,如果存在且为True,将允许通过键盘或触摸选择此项目。当为 None(默认值)时,没有项目可被选择。key_selection是一个StringProperty,默认值为 None。备注
所有数据项都可以直接使用
select_node()或deselect_node()进行选择,即使key_selection为 False 时也是如此。
- class kivy.uix.recycleview.layout.RecycleLayoutManagerBehavior[源代码]¶
基类:
objectRecycleLayoutManagerBehavior 负责在
RecycleView中,将视图定位到RecycleView.data内。当数据对用户可见时,它会将新视图添加到数据中;当数据离开可见区域时,则将其移除。- key_viewclass¶
参见
RecyclerView.key_viewclass。
- viewclass¶
参见
RecyclerView.viewclass。