首先,我已經通過很多例子,但無法弄清楚這一點,所以在這裏問。 我的應用程序將在android上運行。屏幕1有一個按鈕,點擊屏幕2。 所有我需要的是代碼上按後退按鈕在屏幕上2在基維實現android後退按鈕功能
我的代碼移回畫面1:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from random import random
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.popup import Popup
from random import random
from random import choice
from kivy.properties import StringProperty
import time
from kivy.clock import Clock
from functools import partial
from kivy.utils import platform
from kivy.core.window import Window
Builder.load_string("""
<MenuScreen>:
Button:
text: "move to next screen 2"
on_press: root.manager.current = 'game_mode'
<GameMode>:
Label:
text: "screen 2"
""")
class MenuScreen(Screen):
pass
class GameMode(Screen):
pass
sm = ScreenManager()
menu_screen = MenuScreen(name='menu')
sm.add_widget(menu_screen)
sm.add_widget(GameMode(name='game_mode'))
class TestApp(App):
def build(self):
self.bind(on_start=self.post_build_init)
return sm
def post_build_init(self,ev):
if platform == 'android':
import android
android.map_key(android.KEYCODE_BACK, 1001)
win = Window
win.bind(on_keyboard=self.key_handler)
def key_handler(self, window, keycode1, keycode2, text, modifiers):
if keycode1 == 27 or keycode1 == 1001:
sm.go_back()
return True
return False
if __name__ == '__main__':
TestApp().run()
請幫助。我想要基於屏幕管理器的解決方案。如果您能改進我的代碼以提供解決方案,我將非常感激。
我有代碼,這是否[這裏](https://github.com /inclement/phutball/blob/master/main.py#L30),儘管pygame的東西並不是必需的(你也許應該避免它,因爲我們期望從android上的pygame很快離開)。 – inclement
很快就會離開android上的pygame嗎?這意味着什麼 - 你的意思是不應該使用kivy來實現Android遊戲? –
不,這意味着你不應該直接調用pygame(例如'import pygame')。 Kivy自己的API將會保持不變,並像以往一樣工作 - 默認情況下我們使用pygame作爲後端的東西,所以目前可以直接導入它,但我們不保證它的存在,您應該避免這樣做。 – inclement