如何在Kivy中创建自动滚动标签?

时间:2017-03-26 23:33:44

标签: android kivy kivy-language

我正在开发一个应用程序,顶部有一些按钮,底部有一个可滚动的Label。我希望滚动标签能够自动从右向左滚动,类似于新闻中的内容。

<marquee>N e w s</marquee>

我知道如何制作可滚动的标签,但我不确定如何自动移动它。

2 个答案:

答案 0 :(得分:1)

要制作可滚动标签,可以直接从kv lang使用一小段代码。首先将size_hint_x设置为None,以便可以将其放大到texture_size的宽度。

from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.animation import Animation
from kivy.uix.scrollview import ScrollView
Builder.load_string('''
<Spacer@Widget>:
    size_hint_x: None
    width: 800

<ScrollLabel>:
    GridLayout:
        rows: 1
        size_hint_x: None
        width: self.minimum_width
        Spacer:
        Label:
            size_hint_x: None
            text: 'l or emi psum '*100
            width: self.texture_size[0]
        Spacer:
''')
class ScrollLabel(ScrollView): pass
scroll = ScrollLabel(scroll_y=-1)
marquee = Animation(scroll_x=1, duration=100.0)
marquee.start(scroll)
runTouchApp(scroll)

要使其滚动,只需使用Animation即可。您还可以使用Widget作为间隔符,以便您的文字在视觉上看起来像html marquee标记,即滚动到空白区域,而不是滚动已经可见的文本。

答案 1 :(得分:0)

只需将顶级布局设为ScrollView,如下所示:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">  
</ScrollView>

如果您想要详细滚动查看,请连接到此站点:

https://developer.android.com/reference/android/widget/ScrollView.html