MDCardSwipe 刷卡功能不起作用
MDCardSwipe swipe functionality not working
我似乎无法使 MDCardSwipe 工作。即使是直接从 kivymd.uix.card 中的文档中提取的示例代码也无法在我的机器上运行。
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivymd.app import MDApp
from kivymd.uix.card import MDCardSwipe
KV = '''
<SwipeToDeleteItem>:
size_hint_y: None
height: content.height
MDCardSwipeLayerBox:
# Content under the card.
MDCardSwipeFrontBox:
# Content of card.
OneLineListItem:
id: content
text: root.text
_no_ripple_effect: True
MDScreen:
MDBoxLayout:
orientation: "vertical"
spacing: "10dp"
MDToolbar:
elevation: 10
title: "MDCardSwipe"
ScrollView:
scroll_timeout : 100
MDList:
id: md_list
padding: 0
'''
class SwipeToDeleteItem(MDCardSwipe):
'''Card with `swipe-to-delete` behavior.'''
text = StringProperty()
class TestCard(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Builder.load_string(KV)
def build(self):
return self.screen
def on_start(self):
'''Creates a list of cards.'''
for i in range(20):
self.screen.ids.md_list.add_widget(
SwipeToDeleteItem(text=f"One-line item {i}")
)
TestCard().run()
上面的代码在我的机器上创建了列表中的卡片,但是没有刷卡功能。我也尝试过 swipe_distance 和 swipe_type,但一直无法使滑动功能正常工作。
运行 我自己遇到了同样的问题。
我建议您查看 MDCardSwipe docs 中的 'end code',运行,您可能会遇到与原始问题相同的问题。
你会注意到,如果(在 PC 上)你长按左边缘然后拖动滑动功能就在那里,很难触发。
我认为这是由于 scrollview 和子窗口小部件之间的输入竞争,我通过调整 scroll_timeout
解决了这个问题。
我似乎无法使 MDCardSwipe 工作。即使是直接从 kivymd.uix.card 中的文档中提取的示例代码也无法在我的机器上运行。
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivymd.app import MDApp
from kivymd.uix.card import MDCardSwipe
KV = '''
<SwipeToDeleteItem>:
size_hint_y: None
height: content.height
MDCardSwipeLayerBox:
# Content under the card.
MDCardSwipeFrontBox:
# Content of card.
OneLineListItem:
id: content
text: root.text
_no_ripple_effect: True
MDScreen:
MDBoxLayout:
orientation: "vertical"
spacing: "10dp"
MDToolbar:
elevation: 10
title: "MDCardSwipe"
ScrollView:
scroll_timeout : 100
MDList:
id: md_list
padding: 0
'''
class SwipeToDeleteItem(MDCardSwipe):
'''Card with `swipe-to-delete` behavior.'''
text = StringProperty()
class TestCard(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Builder.load_string(KV)
def build(self):
return self.screen
def on_start(self):
'''Creates a list of cards.'''
for i in range(20):
self.screen.ids.md_list.add_widget(
SwipeToDeleteItem(text=f"One-line item {i}")
)
TestCard().run()
上面的代码在我的机器上创建了列表中的卡片,但是没有刷卡功能。我也尝试过 swipe_distance 和 swipe_type,但一直无法使滑动功能正常工作。
运行 我自己遇到了同样的问题。
我建议您查看 MDCardSwipe docs 中的 'end code',运行,您可能会遇到与原始问题相同的问题。
你会注意到,如果(在 PC 上)你长按左边缘然后拖动滑动功能就在那里,很难触发。
我认为这是由于 scrollview 和子窗口小部件之间的输入竞争,我通过调整 scroll_timeout
解决了这个问题。