缺少回收视图小部件
Missing Recycle View widget
我需要创建一个自动填充应用程序,我在顶部有一个标签和文本输入,在底部有一个回收视图。但是,当我 运行 程序时,回收视图消失了,即使我已经在字符串中设置了。此应用程序将通过在文本输入中键入名称来方便搜索内容,相关内容将出现在回收视图中,因此用户无需查看冗长的内容列表。
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout
Window.size = (350, 600)
Builder.load_string('''
<MyLayout>:
BoxLayout:
orientation: "vertical"
spacing: 10
padding: 10
Label :
text : 'Favourite Pizza'
TextInput :
font_size: 30
focus: True
multiline : False
<RV>:
RecycleBoxLayout:
viewclass: 'TextInput'
default_size: None, 30
default_size_hint: 1, None
size_hint_y: .8
height: self.minimum_height
orientation : 'vertical'
''')
class MyLayout(BoxLayout):
pass
class RV(RecycleView):
def __init__(self, **kwrgs):
super(RV, self).__init__(**kwrgs)
content = ["Pepperoni", "Cheese","Papper", "Hawaii", "Seafood",
"Ham", "Taco", "Onion"]
self.data = [{'text':item} for item in content]
print(content)
class MainApp(App):
title='Search App'
def build(self):
Window.clearcolor = (51/255, 153/255, 1, 1)
return MyLayout()
MainApp().run()
我应该怎么做才能获得完整视图(标签、文本输入和回收视图)?我想输入一个输入文本,相关内容会出现在回收视图中,我可以使用回收视图来达到这个目的吗?我可以同时使用 BoxLayout 和 RecycleBoxLayout 吗,因为它指的是不同的小部件?
首先,动态类必须与root
处于同一级别。
其次,为了让RecycleView
垂直增长,在这里,你必须将RecycleBoxLayout
的size_hint_y
设置为None
。因此,您的 kvlang
现在应该看起来像
<MyLayout>:
BoxLayout:
orientation: "vertical"
spacing: 10
padding: 10
Label :
text : 'Favourite Pizza'
TextInput :
font_size: 30
focus: True
multiline : False
RV:
<RV>:
viewclass: 'TextInput'
RecycleBoxLayout:
default_size: None, 30
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation : 'vertical'
我需要创建一个自动填充应用程序,我在顶部有一个标签和文本输入,在底部有一个回收视图。但是,当我 运行 程序时,回收视图消失了,即使我已经在字符串中设置了。此应用程序将通过在文本输入中键入名称来方便搜索内容,相关内容将出现在回收视图中,因此用户无需查看冗长的内容列表。
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout
Window.size = (350, 600)
Builder.load_string('''
<MyLayout>:
BoxLayout:
orientation: "vertical"
spacing: 10
padding: 10
Label :
text : 'Favourite Pizza'
TextInput :
font_size: 30
focus: True
multiline : False
<RV>:
RecycleBoxLayout:
viewclass: 'TextInput'
default_size: None, 30
default_size_hint: 1, None
size_hint_y: .8
height: self.minimum_height
orientation : 'vertical'
''')
class MyLayout(BoxLayout):
pass
class RV(RecycleView):
def __init__(self, **kwrgs):
super(RV, self).__init__(**kwrgs)
content = ["Pepperoni", "Cheese","Papper", "Hawaii", "Seafood",
"Ham", "Taco", "Onion"]
self.data = [{'text':item} for item in content]
print(content)
class MainApp(App):
title='Search App'
def build(self):
Window.clearcolor = (51/255, 153/255, 1, 1)
return MyLayout()
MainApp().run()
我应该怎么做才能获得完整视图(标签、文本输入和回收视图)?我想输入一个输入文本,相关内容会出现在回收视图中,我可以使用回收视图来达到这个目的吗?我可以同时使用 BoxLayout 和 RecycleBoxLayout 吗,因为它指的是不同的小部件?
首先,动态类必须与root
处于同一级别。
其次,为了让RecycleView
垂直增长,在这里,你必须将RecycleBoxLayout
的size_hint_y
设置为None
。因此,您的 kvlang
现在应该看起来像
<MyLayout>:
BoxLayout:
orientation: "vertical"
spacing: 10
padding: 10
Label :
text : 'Favourite Pizza'
TextInput :
font_size: 30
focus: True
multiline : False
RV:
<RV>:
viewclass: 'TextInput'
RecycleBoxLayout:
default_size: None, 30
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation : 'vertical'