后退按钮功能带有屏幕缓存



我的应用程序中有一堆屏幕,我希望后退按钮能够普遍工作以返回到上一个屏幕。我一直在尝试实现堆栈并弹出上一个屏幕,但由于某种原因,我发现的 Window 绑定方法解决方案无法完全工作。

class RegisterScreen(Screen):
    screenlist = ListProperty([])
    def __init__(self, **kwargs):
        super(RegisterScreen, self).__init__(**kwargs)
        # Setting it up to listen for keyboard events
        Window.bind(on_keyboard=self.onBackBtn)
    def onBackBtn(self, window, key, *args):
       """ To be called whenever user presses Back/Esc Key """
        # If user presses Back/Esc Key
        if key == 27:
            print(self.screenlist)
            self.manager.current = self.screenlist[len(screenlist)]
            return True

此代码的问题是__init__重写方法。我认为将on_keyboard函数绑定到窗口是使所有后退按钮按下都使用 onBackBtn 方法。我该如何解决这个问题?

TLDR:如何允许后退按钮返回以前的一堆屏幕?

我主要使用 KV 语言,但我认为后退按钮实现在 Python 中更容易做到......

我不认为覆盖 init 会导致此问题,当然所有后按都会调用 onBackBtn 函数,因为它指的是键,即 27,这实际上意味着后退按钮。看看这个 https://pastebin.com/3CTv6GQV

相关内容

最新更新