How to Disable back button on android for kivy app ?
Last Updated :
21 Apr, 2021
In this article, we will develop a GUI window using kivy framework of python, and we will disable the android back button from the window.
Approach
- When the kivy app starts the on_start() method will call automatically and this method will import EventLoop from kivy.
- Using this EventLoop we will bind a method hook_keyboard() to the current window for detecting key presses means whenever we will press any key this hook_keyboard() method will call automatically, and it checks whether we have pressed back button (code for this back button is 27).
- Then we are checking whether we are on the main screen or not if yes then we simply return True(and this app will get terminated) otherwise we are not returning anything and this program will not do anything on keypress.
Implementation
Python3
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
class MainWindow(BoxLayout):
pass
class uiApp(App):
def on_start( self ):
from kivy.base import EventLoop
EventLoop.window.bind(on_keyboard = self .hook_keyboard)
def hook_keyboard( self , window, key, * largs):
if key = = 27 :
if self .screen_manager.current = = 'mainscreen' :
return True
else :
pass
def build( self ):
self .screen_manager = ScreenManager()
self .mainscreen = MainWindow()
screen = Screen(name = 'mainscreen' )
screen.add_widget( self .mainscreen)
self .screen_manager.add_widget(screen)
return self .screen_manager
if __name__ = = "__main__" :
uiApp().run()
|
Output:
This is the main design of the visible screen:
<MainWindow>:
BoxLayout:
BoxLayout:
canvas.before:
Color:
rgba:[0,1,0,1]
Rectangle:
pos:self.pos
size:self.size
BoxLayout:
Note: This app wouldn’t do anything on running on pc it simply displays a screen on pc while the output of this app can be checked perfectly on an android device.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...