我需要创建一个自动填充应用程序,我有一个标签和文本输入在顶部,循环视图在底部。但是,当我运行该程序时,即使已在字符串中设置,循环视图也将消失。此应用程序将通过在文本输入中键入名称来方便搜索内容,相关内容将出现在“回收”视图中,因此用户不必通过冗长的内容列表查看内容。
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,因为它引用不同的小部件吗?
发布于 2022-02-22 06:47:09
首先,动态类必须与root
处于同一级别。
其次,为了使RecycleView
垂直增长,您必须将size_hint_y
of RecycleBoxLayout
设置为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'
https://stackoverflow.com/questions/71215875
复制相似问题