Răsfoiți Sursa

Fixed bug 3065 - Screen is flickering during closing on-screen keyboard on Android

Deve

When I'm trying to close on-screen keyboard using SDL_StopTextInput() function by touching the screen (SDL_FINGERUP or SDL_FINGERDOWN event), the screen is flickering. It is white for a while.

Note that it usually works without problems when I use phone's "back" button. I noticed flickering occasionally too, but not that often.

Philipp Wiesemann

The attached patch maybe fixes the flicker but not the actual fault causing it.
Sam Lantinga 10 ani în urmă
părinte
comite
4e6f219941
1 a modificat fișierele cu 4 adăugiri și 1 ștergeri
  1. 4 1
      android-project/src/org/libsdl/app/SDLActivity.java

+ 4 - 1
android-project/src/org/libsdl/app/SDLActivity.java

@@ -369,7 +369,10 @@ public class SDLActivity extends Activity {
                 break;
                 break;
             case COMMAND_TEXTEDIT_HIDE:
             case COMMAND_TEXTEDIT_HIDE:
                 if (mTextEdit != null) {
                 if (mTextEdit != null) {
-                    mTextEdit.setVisibility(View.GONE);
+                    // Note: On some devices setting view to GONE creates a flicker in landscape.
+                    // Setting the View's sizes to 0 is similar to GONE but without the flicker.
+                    // The sizes will be set to useful values when the keyboard is shown again.
+                    mTextEdit.setLayoutParams(new AbsoluteLayout.LayoutParams(0, 0, 0, 0));
 
 
                     InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                     InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                     imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0);
                     imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0);