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

Android 如何在Kivy中创建自动滚动标签?,android,kivy,kivy-language,Android,Kivy,Kivy Language,我正在开发一个应用程序,它的顶部有一些按钮,底部有一个可滚动的标签。我想让可滚动标签自动从右向左滚动,就像人们在新闻上看到的那样 news只需将顶层布局设置为滚动视图,如下所示: <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

我正在开发一个应用程序,它的顶部有一些按钮,底部有一个可滚动的
标签。我想让可滚动标签自动从右向左滚动,就像人们在新闻上看到的那样


news
只需将顶层布局设置为滚动视图,如下所示:

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

如果要滚动查看详细信息,请连接到此网站:


要制作可滚动标签,有一小段代码可直接从
kv
lang使用。首先将
size\u hint\u x
设置为
None
,以便将其放大到
纹理大小的宽度

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)
来自kivy.lang导入生成器
从kivy.base导入runTouchApp
从kivy.animation导入动画
从kivy.uix.scrollview导入scrollview
Builder.load_字符串(“”)
:
大小提示:无
宽度:800
:
网格布局:
行数:1
大小提示:无
宽度:自最小宽度
垫片:
标签:
大小提示:无
文本:“l或emi psum”*100
宽度:自纹理大小[0]
垫片:
''')
类ScrollLabel(ScrollView):通过
滚动=滚动标签(滚动y=-1)
字幕=动画(滚动x=1,持续时间=100.0)
选框。开始(滚动)
runTouchApp(滚动)

要使其滚动,只需使用。您还可以使用
小部件
作为分隔符,这样您的文本在视觉上看起来就像html
字幕
标记,即滚动到空白处,而不是滚动已经可见的文本。

是的,一点也不。注意这里没有
java
标记,尽管人们倾向于在Kivy上使用
android
,因为它支持Kivy。要反复运行,我只需要一个真正的循环?或者有更好的方法来处理这个问题吗?@Nithishbn
虽然True
会冻结应用程序,但您需要使用时钟,或者只是尝试在ScrollView中的
on\u scroll
事件中实现它,这样当它达到
scroll\u x>=所需的值时,您就可以将
scroll\u x
设置为
0