目录
- 轮播图
CarouselCarousel.add_widget()Carousel.anim_cancel_durationCarousel.anim_move_durationCarousel.anim_typeCarousel.clear_widgets()Carousel.current_slideCarousel.directionCarousel.ignore_perpendicular_swipesCarousel.indexCarousel.load_next()Carousel.load_previous()Carousel.load_slide()Carousel.loopCarousel.min_moveCarousel.next_slideCarousel.on_touch_down()Carousel.on_touch_move()Carousel.on_touch_up()Carousel.previous_slideCarousel.remove_widget()Carousel.scroll_distanceCarousel.scroll_timeoutCarousel.slides
轮播图¶
在 1.4.0 版本加入.
: Carousel 组件提供了经典的移动端友好的轮播视图,您可以在其中滑动切换幻灯片。您可以将任何内容添加到轮播中,并使其水平或垂直移动。轮播可以按顺序或循环显示页面。
示例:
from kivy.app import App
from kivy.uix.carousel import Carousel
from kivy.uix.image import AsyncImage
class CarouselApp(App):
def build(self):
carousel = Carousel(direction='right')
for i in range(10):
src = "http://placehold.it/480x270.png&text=slide-%d&.png" % i
image = AsyncImage(source=src, fit_mode="contain")
carousel.add_widget(image)
return carousel
CarouselApp().run()
Kv 示例:
Carousel:
direction: 'right'
AsyncImage:
source: 'http://placehold.it/480x270.png&text=slide-1.png'
AsyncImage:
source: 'http://placehold.it/480x270.png&text=slide-2.png'
AsyncImage:
source: 'http://placehold.it/480x270.png&text=slide-3.png'
AsyncImage:
source: 'http://placehold.it/480x270.png&text=slide-4.png'
在 1.5.0 版本发生变更: 轮播现在支持活动子项,类似于 ScrollView。它将根据 Carousel.scroll_timeout 和 Carousel.scroll_distance 属性检测滑动手势。
此外,滑动容器不再通过API暴露。受影响的属性包括:Carousel.slides、Carousel.current_slide、Carousel.previous_slide 和 Carousel.next_slide。
- class kivy.uix.carousel.Carousel(**kwargs)[源代码]¶
基类:
StencilViewCarousel 类。更多信息请参阅模块文档。
- add_widget(widget, index=0, *args, **kwargs)[源代码]¶
将此小部件添加为当前小部件的子级。
- 参数:
- widget:
Widget 要添加到我们子控件列表中的控件。
- index:整数,默认值为0
在列表中插入控件的索引。请注意,默认值0意味着控件被插入到列表的开头,因此会绘制在其他同级控件之上。关于索引和控件层次结构的完整讨论,请参阅 控件编程指南。
在 1.0.5 版本加入.
- canvas:字符串,默认为 None
用于添加控件画布的Canvas。可以是'before'、'after'或None以使用默认画布。
在 1.9.0 版本加入.
- widget:
>>> from kivy.uix.button import Button >>> from kivy.uix.slider import Slider >>> root = Widget() >>> root.add_widget(Button()) >>> slider = Slider() >>> root.add_widget(slider)
- anim_cancel_duration¶
定义滑动动作未被接受时动画的持续时间。这通常发生在用户未进行足够大幅度的滑动时。参见
min_move。anim_cancel_duration是一个NumericProperty,默认值为 0.3。
- anim_move_duration¶
定义轮播页面之间动画的持续时间。
anim_move_duration是一个NumericProperty,默认值为 0.5。
- anim_type¶
在切换到下一张/上一张幻灯片时使用的动画类型。这应该是
AnimationTransition函数的名称。anim_type是一个StringProperty,默认值为 'out_quad'。在 1.8.0 版本加入.
- clear_widgets(children=None, *args, **kwargs)[源代码]¶
移除该控件的所有(或指定的):attr:~Widget.children。如果指定了'children'参数,它应为当前控件子项的一个列表(或过滤后的列表)。
在 1.8.0 版本发生变更: children 参数可用于指定你想要移除的子项。
在 2.1.0 版本发生变更: 指定一个空的``children``列表不会改变现有控件。此前,它会被视为``None``,从而移除所有子控件。
- current_slide¶
当前显示的幻灯片。
current_slide是一个AliasProperty。在 1.5.0 版本发生变更: 该属性不再暴露幻灯片容器,而是返回您添加的控件。
- direction¶
指定幻灯片排列的方向。这对应于用户从一个幻灯片滑动到下一个幻灯片时的滑动方向。可选值为 right、left、top 或 bottom。例如,默认值为 right 时,第二个幻灯片位于第一个的右侧,用户需从右向左滑动以到达第二个幻灯片。
direction是一个OptionProperty,默认值为 'right'。
- ignore_perpendicular_swipes¶
忽略与方向垂直的轴上的滑动。
ignore_perpendicular_swipes是一个BooleanProperty,默认值为 False。在 1.10.0 版本加入.
- index¶
根据索引获取/设置当前幻灯片。
index是一个AliasProperty,默认值为 0(即第一个项目)。
- loop¶
允许Carousel无限循环。若为True,当用户尝试滑动超过最后一页时,将返回第一页。若为False,则停留在最后一页。
loop是一个BooleanProperty,默认值为 False。
- min_move¶
定义触摸被视为滑动手势并触发Carousel内容切换前所需覆盖的最小距离。该值表示为Carousel宽度的比例。如果移动未达到此最小值,则移动将被取消,内容将恢复到其原始位置。
min_move是一个NumericProperty,默认值为 0.2。
- next_slide¶
Carousel 中的下一张幻灯片。如果当前幻灯片是 Carousel 中的最后一张,则为 None。此顺序反映了幻灯片添加的顺序:它们的展示方式根据
direction属性而变化。next_slide是一个AliasProperty。在 1.5.0 版本发生变更: 该属性不再暴露幻灯片容器,而是返回您添加的控件。
- on_touch_down(touch)[源代码]¶
接收触摸按下事件。
- 参数:
- touch:
MotionEvent类 收到触摸事件。该触摸位于父级坐标系中。关于坐标系统的讨论,请参阅
relativelayout。
- touch:
- 返回:
bool 若为 True,触摸事件的派发将停止。若为 False,事件将继续派发给控件树中的其余部分。
- on_touch_move(touch)[源代码]¶
接收触摸移动事件。触摸坐标位于父坐标系中。
更多信息请参阅
on_touch_down()。
- on_touch_up(touch)[源代码]¶
接收触摸抬起事件。触摸坐标位于父坐标系中。
更多信息请参阅
on_touch_down()。
- previous_slide¶
轮播图中的上一张幻灯片。如果当前幻灯片是轮播图中的第一张,则该值为 None。此顺序反映了幻灯片添加的顺序:它们的呈现方式根据
direction属性而变化。previous_slide是一个AliasProperty。在 1.5.0 版本发生变更: 该属性不再暴露幻灯片容器。它返回您已添加的控件。
- remove_widget(widget, *args, **kwargs)[源代码]¶
从该部件的子部件中移除一个部件。
- 参数:
- widget:
Widget 要从我们的子部件列表中移除的部件。
- widget:
>>> from kivy.uix.button import Button >>> root = Widget() >>> button = Button() >>> root.add_widget(button) >>> root.remove_widget(button)
- scroll_distance¶
滚动
Carousel前需要移动的距离(以像素为单位)。一旦达到该距离,Carousel将开始滚动,且触摸事件将不再传递给子组件。建议您根据目标设备屏幕的 dpi 来设定此值。scroll_distance是一个NumericProperty,默认值为 20dp。在 1.5.0 版本加入.
- scroll_timeout¶
允许触发
scroll_distance的超时时间,单位为毫秒。如果用户在此超时时间内未移动scroll_distance,则不会发生滚动,触摸事件将传递给子组件。scroll_timeout是一个NumericProperty,默认值为 200(毫秒)。在 1.5.0 版本加入.
- slides¶
Carousel 内部的幻灯片列表。这些幻灯片是通过
add_widget方法添加到 Carousel 中的控件。slides是一个ListProperty,并且是只读的。