2017-04-03 46 views
0

私のアプリにはたくさんの画面があり、前の画面に戻るために戻るボタンが普遍的に働くようにしたいと思います。私はスタックを実装し、前の画面をポップしようとしていますが、何らかの理由で、私が見つけたウィンドウバインドメソッドのソリューションが完全には機能しません。戻るボタンの機能画面キャッシュ付きKivy

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で行うことは簡単です...

+0

明確化:私はすべてのバックボタンのプレスはonBackBtnメソッドを使用していますが、前の画面に戻る – Nithishbn

答えて

0

私はこの問題の原因とofcourseのすべてのバックプレスが呼び出すのinitをoveridingと思ういけません実際に戻るボタンを意味する27のキーを参照しているため、onBackBtn関数が使用されています。https://pastebin.com/3CTv6GQV

+0

しかし、画面ウィジェット内またはアプリ内でonBackBtn関数を使用する必要がありますウィジェット? – Nithishbn

+0

コードが完全に機能していないようですか? – Nithishbn

関連する問題