2012-03-30 2 views
1

Gibt es eine Möglichkeit zu wissen, dass die virtuelle Tastatur während der Laufzeit vom Benutzer ausgeblendet wird. Bevor Sie mich doppelte Frage markieren, verstehen Sie zuerst meine Frage, weil es wie ein Duplikat erscheint und ich auch viele Fragen zu verwandten Themen gefunden habe. Aber keine Antwort gefunden.Status der virtuellen Tastatur

Problem ist während eines Ereignisses wie sagen Orientierung Änderung auftreten, muss ich wissen, ob Benutzer die Tastatur minimiert hat oder nicht. So dass ich Maßnahmen entsprechend ergreifen. Ich habe versucht, sehr spezifisch zu sein, um jede Erklärung zu hinterfragen, die ich gerne stellen würde. Jede Hilfe wird geschätzt Danke im Voraus versuchen, meine

final View activityRootView = findViewById(R.id.ll_main_root); 
       activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
        @Override 
        public void onGlobalLayout() { 
         int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight(); 
         if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard... 
          Toast.makeText(MainActivity.instance, "KeyBoarad" + value, Toast.LENGTH_LONG).show(); 
         } 
        } 
       }); 

Antwort

1

Hey Es kann spät sein, aber nur für die Abfrage und mein Vorschlag. Ich hatte etwas mit dem gleichen Problem zu tun. In meinem Fall wurde meine Tastatur während der Orientierungsänderung minimiert, auch wenn sie vor der Änderung der Ausrichtung sichtbar war. Also habe ich android:windowSoftInputMode="stateUnchanged" verwendet, damit meine Tastatur auch bei Orientierungsänderung sichtbar bleibt.

Und es kann ein weiteres Problem geben, dass Sie die Sichtbarkeit ändern möchten, so können Sie toggleSoftInputFromWindow (IBinder windowToken, int showFlags, int hideFlags) verwenden.

Speziell

InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMgr.toggleSoftInput(0, 0);

Hoffe, es hilft.

+0

Obwohl Post ist alt und ich habe diesen Teil des Codes bereits verlassen, aber immer noch nur den Zufall sagen, ich brauchte etwas, was Sie konfrontiert, also werde ich dich upbooten und werde deinen Code ausprobieren. Thnaks. – Android

1

Ziemlich viel Duplikat dieser: How to capture the "virtual keyboard show/hide" event in Android?

und diese: Android EditText, soft keyboard show/hide event?

Die Schlussfolgerung scheint zu sein, dass es keine Um dies zu erfassen, verwenden einige Leute Hacks, bei denen Sie die Größe des Bildschirms erfassen und diesen Parameter verwenden.

+0

Problem ist da. Dieser Hack funktioniert nicht. Es muss einen Ausweg geben :-( – Android

+0

heh sei mein Gast, um unzählige Stunden zu verschwenden :) Hast du einen anderen Ansatz für dein Problem in Betracht gezogen? Sie können überprüfen, ob die Tastatur geöffnet ist, wenn Sie eine Konfigurationsänderung vornehmen und diese dann entsprechend behandeln. – Warpzit

+0

haha, ich habe keine andere Wahl, als es zu versuchen. Ich hoffe, jemand weiß, wie man das macht. und dieser Hack ist ich weiß nicht funktioniert nicht für mich. Die Bildschirmgröße und Höhe ein – Android