2017-03-04 4 views
1

ich eine Situation mit einem wenig komplexen Fragmente Layout xml von mir zugewandt,Hintergrund Glitch auf Tastatur Verschluss

So ist die Hierarchie folgt wie:

RelativeLayout (kein Hintergrund)
--ScrollView (fillViewPort = true, scrollbars = none)
---- FrameLayout (kein Hintergrund)
------ Linearlayout (kein Hintergrund)
-------- RelativeLayout (Hintergrundfarbe grau)
---------- EditTextSo ...

wenn die EditText angeklickt haben Soft-Tastatur öffnet (wie erwartet), und bei der Wiedergabe drücken oder einig Klick-Block, die Tastatur mit folgenden Methode verbirgt:

try { 
     InputMethodManager inputMethodManager = (InputMethodManager) GlobalApplication.getInstance().getCurrentActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); 
     inputMethodManager.hideSoftInputFromWindow(GlobalApplication.getInstance().getCurrentActivity().getCurrentFocus().getWindowToken(), 0); 
    } catch (Exception e) { 
     if (e.getMessage() != null) 
      Log.d("KeyboardError", e.getMessage()); 
    } 

Das Problem ist, I‘ Ich habe einen roten Hintergrund für die Aktivität und wenn die versteckte Tastaturaktion passiert, sehe ich den Hintergrund der Aktivität anstelle des grauen Hintergrunds von RelativeLayout, und es passiert wie ein Glitch oder festgefahren. Nach einer Weile wird es wieder normal und zeigt den richtigen Hintergrund.

Danke für Hilfe, Prost.

+0

angeben, welche Version von Android Sie verwenden. Es wird hilfreich sein, die Antwort zu finden – The4thIceman

+0

es ist auf mehreren Versionen von Android, 4.4.2 5.1 6.0 7.0 passiert –

Antwort

1

Verwenden Sie dies in Ihrer Basisaktivität onCreate() nach super.onCreate (savedInstanceState);

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

oder

Fügen Sie diese Zeilen in Ihrem Manifest unter dem Aktivitäts-Tag

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
     android:windowSoftInputMode="stateHidden|adjustPan"