В kivy popup я вижу, что могу контролировать, будет ли он выполнять анимацию или нет, объявив
popup.open(animation=False)
или popup.dismiss(animation=False)
Однако, когда я не контролирую вручнуюоткрыть и закрыть, я не могу найти способ не делать анимацию.
Вот код из ModalView
,
, которыйродительский класс для Popup
def dismiss(self, *largs, **kwargs):
'''Close the view if it is open. If you really want to close the
view, whatever the on_dismiss event returns, you can use the *force*
argument:
::
view = ModalView()
view.dismiss(force=True)
When the view is dismissed, it will be faded out before being
removed from the parent. If you don't want animation, use::
view.dismiss(animation=False)
'''
if self._window is None:
return
if self.dispatch('on_dismiss') is True:
if kwargs.get('force', False) is not True:
return
if kwargs.get('animation', True):
Animation(_anim_alpha=0., d=self._anim_duration).start(self)
else:
self._anim_alpha = 0
self._real_remove_widget()
Как я уже говорил, я могу сделать popup.dismiss(animation=False)
, чтобы не запускать анимацию.Тем не менее, я не могу найти способ вставить параметр при автоматическом отключении (касание за пределами всплывающего окна).
Можно ли сделать это, не касаясь ModalView
самого источника?
Резюме: как не выполнять анимацию при автоматическом закрытии всплывающего окна?