使用scrollview的Kivy 1.10.1下拉菜单无法滚动触摸

问题描述 投票:0回答:1

该代码与kivy 1.9.1完美配合,但与kivy master或1.10.1无关

码:

DropDown:
    auto_width: False
    id: colors
    size: (root.width, 100)
    ScrollView:
        bar_width: 5
        do_scroll_y: False
        do_scroll_x: True
        height: 100
        size_hint_y: None
        GridLayout:
            id: colors_scroll
            rows: 1
            spacing: 0
            width: self.minimum_width
            size_hint: None, None
            30Buttons:
                size_hint: None, None
                size: 100,100

任何帮助将不胜感激。谢谢!

python kivy scrollview dropdown buildozer
1个回答
1
投票

DropDown小部件当前已经具有ScrollView的继承。

尝试将以下内容添加到ScrollView:

    effect_cls: "ScrollEffect"
    scroll_type: ['bars']

Example

卖弄.朋友

from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.base import runTouchApp
from kivy.lang import Builder

Builder.load_string("""
#:import Button kivy.uix.button.Button

<CustomDropDown>:
    bar_width: 10
    effect_cls: "ScrollEffect"
    scroll_type: ['bars']
    bar_color: [1, 0, 0, 1]     # red color
    bar_inactive_color: [0, 0, 1, 1]    # blue color

    GridLayout:
        cols: 1
        size_hint_y: None
        height: self.minimum_size[1]

        on_parent:
            for i in range(1, 30): \
                txt = "{0}".format(i); \
                btn=Button(text=txt, size_hint_y=None, height=40); \
                btn.bind(on_release=lambda btn: self.select(btn.text)); \
                self.add_widget(btn)

""")


class CustomDropDown(DropDown):
    pass


dropdown = CustomDropDown()
mainbutton = Button(text='Hello', size_hint=(None, None))
mainbutton.bind(on_release=dropdown.open)
dropdown.bind(on_select=lambda instance, x: setattr(mainbutton, 'text', x))

runTouchApp(mainbutton)

Output

DropDown - scroll bar inactive DropDown - scroll bar active

© www.soinside.com 2019 - 2024. All rights reserved.