2013-04-24 8 views

Odpowiedz

1

dodaj poniższą linię w manifeście dla konkretnej aktywności.

android:windowSoftInputMode="adjustPan|stateHidden" 
+0

Dla których celem 'adjustPan' jest tutaj? Czy to nie wystarczy, używając samego 'stateHidden'? – Prizoff

+0

przy użyciu adjustPan bieżący fokus nigdy nie jest zasłonięty przez klawiaturę. Aby uzyskać więcej informacji, wejdź tutaj .. http://developer.android.com/guide/topics/manifest/activity-element.html – itsrajesh4uguys

3

spróbować

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
+0

+1. Lub po prostu umieść 'android: windowSoftInputMode =" stateAlwaysHidden "' na manifeście android, jeśli nie ma potrzeby ręcznego ustawiania klawiatury. –

4

Edycja: I dodaje lepsze rozwiązanie na górze, ale również przechowywane stary odpowiedź jako odniesienie.

@Override 
     public boolean onQueryTextSubmit(String query) { 

        searchView.clearFocus(); 
      return false; 
     } 

Oryginalna odpowiedź: zaprogramowałem za pomocą setOnQueryTextListener. Gdy widok jest ukryty, klawiatura znika, a gdy znów jest widoczna, klawiatura nie pojawia się ponownie.

//set query change listener 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){ 
     @Override 
     public boolean onQueryTextChange(String newText) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      /** 
      * hides and then unhides search tab to make sure keyboard disappears when query is submitted 
      */ 
        searchView.setVisibility(View.INVISIBLE); 
        searchView.setVisibility(View.VISIBLE); 
      return false; 
     } 

    }); 
+2

To działa dla mnie po wypróbowaniu dziesiątek metod! Dziękuję bardzo! – Xieyi

+1

Ta odpowiedź powinna być zaakceptowana – nmxprime

14

Zainspirowany odpowiedź Parnit jest, znalazłem lepszą metodę, która również działa i jest piękniejsza:

mSearchView.clearFocus(); 
+0

Powinna być oznaczona jako poprawna – Penzzz

+0

Czy wiesz, jak można ponownie otworzyć klawiaturę? –

0

W Android manifeście:

android:windowSoftInputMode="adjustPan|stateHidden" 

W klasie otwartej i zamknij klawiaturę:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action buttons 
     switch(item.getItemId()) { 
case R.id.search: 
     //TODO Whatever 
      search.clearFocus(); 
     //Open and close the keyboard 
      InputMethodManager imm = (InputMethodManager)MyApplication.getAppContext().getSystemService(
        Context.INPUT_METHOD_SERVICE); 
      imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
      imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 
      return true; 
0

proste rozwiązanie jego praca dla mojego dodać do XML:

android:focusable="false" 
Powiązane problemy