Мне было интересно, как реализовать кнопку TouchRippleBehavior
или TouchRippleButtonBehavior
на кнопке в Kivy. Я пробовал это:
class RippleLabel(TouchRippleBehavior, Label):
def __init__(self, **kwargs):
super(RippleLabel, self).__init__(**kwargs)
def on_touch_down(self, touch):
collide_point = self.collide_point(touch.x, touch.y)
if collide_point:
touch.grab(self)
self.ripple_show(touch)
return True
return False
def on_touch_up(self, touch):
if touch.grab_current is self:
touch.ungrab(self)
self.ripple_fade()
return True
return False
app = Builder.load_string('''
Button:
background_normal: 'image.jpg'
RippleLabel:
on_touch_down: self.root.on_touch_down()
on_touch.up: self.root.on_touch__up()
text: "Test"
''')
class ButtonApp(App):
def build(self):
return app
ButtonApp().run()
Я получаю сообщение об ошибке AttributeError: 'NoneType' object has no attribute 'children'
. Как применить эффект ряби к кнопке при ее нажатии?