Quellcode durchsuchen

Fixed keyboard being hidden while being shown on Android

Sam Lantinga vor 2 Wochen
Ursprung
Commit
47d14491a6
1 geänderte Dateien mit 11 neuen und 2 gelöschten Zeilen
  1. 11 2
      android-project/app/src/main/java/org/libsdl/app/SDLSurface.java

+ 11 - 2
android-project/app/src/main/java/org/libsdl/app/SDLSurface.java

@@ -45,6 +45,9 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
     // Is SurfaceView ready for rendering
     protected boolean mIsSurfaceReady;
 
+    // Is on-screen keyboard visible
+    protected boolean mKeyboardVisible;
+
     // Pinch events
     private final ScaleGestureDetector scaleGestureDetector;
 
@@ -210,9 +213,15 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
             SDLActivity.onNativeInsetsChanged(combined.left, combined.right, combined.top, combined.bottom);
 
             if (insets.isVisible(WindowInsets.Type.ime())) {
-                SDLActivity.onNativeScreenKeyboardShown();
+                if (!mKeyboardVisible) {
+                    mKeyboardVisible = true;
+                    SDLActivity.onNativeScreenKeyboardShown();
+                }
             } else {
-                SDLActivity.onNativeScreenKeyboardHidden();
+                if (mKeyboardVisible) {
+                    mKeyboardVisible = false;
+                    SDLActivity.onNativeScreenKeyboardHidden();
+                }
             }
         }