【发布时间】:2021-12-31 11:04:56
【问题描述】:
我的 KivyMD 应用程序中有一个屏幕,其中包含项目列表。我的目标是根据单击的项目导航到不同的屏幕。我注意到无论我选择哪个项目,下一个屏幕都会或不会与单击的项目相关。这似乎是随机的。
以下是一个可重现的示例。为简化起见,我删除了大部分项目并将导航替换为简单的打印功能。
当单击一个项目或“取消”按钮时,会打印多个文本,就好像我单击了屏幕的多个元素一样(例如,单击 item1 会导致打印“item3 item2 item1”)我怀疑这就是导航不一致的原因
我觉得这很混乱。有人可以解释一下这里发生了什么吗?谢谢:)
from kivy.lang import Builder
from kivymd.app import MDApp
KV = '''
MDScreen:
name: "screen1"
MDBoxLayout:
orientation: "vertical"
MDToolbar:
id : tb_screen1
title: "Select Item"
on_touch_down:
app.p(self.title)
ScrollView:
MDList:
OneLineListItem:
text: "item1"
on_touch_down:
app.p(self.text)
OneLineListItem:
text: "item2"
on_touch_down:
app.p(self.text)
OneLineListItem:
text: "item3"
on_touch_down:
app.p(self.text)
MDBoxLayout:
MDFloatLayout:
MDRectangleFlatIconButton:
text: "Cancel"
on_press:
app.p(self.text)
'''
class MainApp(MDApp):
def build(self):
return Builder.load_string(KV)
def p(self,text):
print(text)
MainApp().run()
【问题讨论】: