2015-01-05 11 views
5

Die XML ist wie folgt.ausblenden Soft-Eingabe bei Listenansicht scrollen

enter image description here

Ich möchte die Funktion wie folgt umzusetzen: wenn ich die EditText klicken, die Soft-Show-Eingang. Wenn ich blättern (nicht scrollen zu OnScrollListener.SCROLL_STATE_IDLE Zustand) die Listenansicht die Soft-Eingabe ausblenden.

Ich benutze die android:windowSoftInputMode="adjustResize".

+0

versuchen Sie mit: android: windowSoftIn putMode = "adjustPan" –

+0

Verwenden Sie adjustPan die Titelleiste wird aus dem Bildschirm sein @krunal patel – Cruisehu

+0

Schreiben Sie diesen Code auf das Bildlaufereignis der Listenansicht: \t InputMethodManager inputMethodManager = (InputMethodManager) getSystemService (Activity.INPUT_METHOD_SERVICE); \t \t \t \t inputMethodManager.hideSoftInputFromWindow (getCurrentFocus(). GetWindowToken(), 0); –

Antwort

10

Detect Ihre Scroll this link verwenden, es implementiert onScrollListener, die Sie auf Ihre ListView gesetzt wird und in seiner onScrollStateChanged() Sie diesen Code setzen in Ihrem -

setOnScrollListener(new OnScrollListener(){ 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     // TODO Auto-generated method stub 
    } 
    public void onScrollStateChanged(AbsListView view, int scrollState) { 
     if (scrollState !=0){ 
      InputMethodManager inputMethodManager = (InputMethodManager) 
      getSystemService(Activity.INPUT_METHOD_SERVICE);  
      inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(‌​), 0); 
     } 
    } 
}); 
+0

Genau das habe ich gesucht. Vielen Dank – Cruisehu

+0

Mein Vergnügen. (Aber vermeiden Sie 'Dank' Kommentare) :) – Darpan

+0

Ich bekam immer Fehler mit diesem. Dann habe ich Android Studio neu gestartet und mein Projekt wieder geöffnet und alles hat gut funktioniert. Android Studio kann auf diese Weise fehlerhaft sein. – CHarris

1
InputMethodManager inputMethodManager = (InputMethodManager) 
      getSystemService(Activity.INPUT_METHOD_SERVICE);  
      inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(‌​), 0); 

einen Fehler in AS gibt. .. Verwenden Sie stattdessen in onScrollStateChange

InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
        in.hideSoftInputFromWindow(absListView.getApplicationWindowToken(), 0); 
Verwandte Themen