2015-01-05 17 views
5

Plik XML jest następujący.Ukryj miękkie wejście podczas przewijania listview

enter image description here

Chcę zaimplementować funkcję tak: po kliknięciu EditText, wejście miękkie show. po przewinięciu (bez przewijania do stanu OnScrollListener.SCROLL_STATE_IDLE) wyświetl listę ukrywania ukrytych danych wejściowych.

Używam android:windowSoftInputMode="adjustResize".

+0

użyj: android: windowSoftIn putMode = "adjustPan" –

+0

Użyj adjustPan pasek tytułu będzie poza ekranem @krunal patel – Cruisehu

+0

wpisz ten kod w zdarzeniu scroll z listy: \t InputMethodManager inputMethodManager = (InputMethodManager) getSystemService (Activity.INPUT_METHOD_SERVICE); \t \t \t \t inputMethodManager.hideSoftInputFromWindow (getCurrentFocus(). GetWindowToken(), 0); –

Odpowiedz

10

Detect swój zwój za pomocą this link, realizuje onScrollListener, który będzie ustawiony na swojej ListView aw jego onScrollStateChanged() można umieścić ten kod w swoim -

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

To jest dokładnie to, czego szukałem. Dziękuję u – Cruisehu

+0

Moja przyjemność. (choć unikaj komentarzy "dziękuję") :) – Darpan

+0

Ciągle dostaję z tym błędy. Następnie ponownie uruchomiłem system Android Studio i ponownie otworzyłem mój projekt, a wszystko działało dobrze. Android Studio może być wadliwy w ten sposób. – CHarris

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

daje błąd w AS. .. Użyj tego zamiast wewnątrz onScrollStateChange

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