该代码与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
任何帮助将不胜感激。谢谢!
DropDown小部件当前已经具有ScrollView的继承。
尝试将以下内容添加到ScrollView:
effect_cls: "ScrollEffect"
scroll_type: ['bars']
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)