2012-07-04 12 views
23

Mam Fragment (wersję kompatybilności) z EditText w swoim układzie. Używam ViewFlipper do przechodzenia między fragmentami. Kiedy dotrę do tego konkretnego Fragment, miękka klawiatura otwiera się automatycznie. Nie tego chcę. Oto, co próbowałem zatrzymać lub ukryć.EditText automatycznie otwiera miękką klawiaturę, gdy Fragment jest widoczny z ViewPager

Próbowano:

android:descendantFocusability="beforeDescendants" 

w głównym widoku fragment jest

Próbowaliśmy:

android:windowSoftInputMode="stateHidden" 

i

android:windowSoftInputMode="stateAlwaysHidden" 

w manifeście aktywności

Tried:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(mViewPager.getChildAt(position).getWindowToken(), 0); 

na OnPageChangeListener mojego ViewPager

Tried:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(voucherView.findViewById(R.id.redeem_mobile_number).getWindowToken(), 0); 

w onCreateView w moim Fragment

próbowałem:

InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getView().findViewById(R.id.redeem_mobile_number).getWindowToken(), 0); 

w onStart w moim Fragment

Tried:

voucherView.findViewById(R.id.redeem_mobile_number).clearFocus(); 

w onCreateView w moim Fragment

Wydaje mi się onPageChangeListener jest miejsce, aby to zrobić, ponieważ pozostałe połączenia nastąpi przed miękka klawiatura jest rzeczywiście otwarta. Każda pomoc byłaby świetna.

+0

Aby ukryć klawiaturę w try fragmentu. InputMethodManager imm = (InputMethodManager) getSherlockActivity() getSystemService (Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow (inputSearch.getWindowToken(), 0); P.S inputSearch to pole EditText –

Odpowiedz

60

This post ma rozwiązanie tego problemu.

Odpowiedzią było dodanie android:focusableInTouchMode="true" do LinearLayout zawierającego EditText. Teraz nie wyświetla automatycznie miękkiej klawiatury.

+0

Bardzo ładne, krótkie i czyste. Dzięki –

5

Czy próbowałeś tego?

<activity 
    android:name=".YourActivityName" 
    android:configChanges="keyboardHidden|orientation" 
    android:windowSoftInputMode="stateHidden" /> 

EDIT:

spróbuj tego (I teraz jest zły, ale daje szansę na to) :)

Thread splashTread = new Thread() { 
     @Override 
     public void run() { 
      try { 

       sleep(1); 
      } catch (InterruptedException e) { 
       // do nothing 
      } finally { 
       runOnUiThread(new Runnable() { 
        public void run() { 
         InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 
         imm.hideSoftInputFromWindow(youreditText.getWindowToken(), 0); 

        } 
       }); 

      } 
     } 
    }; 
    splashTread.start(); 
+0

połączenie android: configChanges i android: windowSoftInputMode jest ważne. –

+0

Po prostu próbowałem teraz i to nie pomogło –

+0

Twoja edycja zadziałała za pierwszym razem, gdy przeskoczyłem do widoku Fragmentu, ale potem nie działało. Zdecydowanie nie wydaje się to właściwym sposobem na zrobienie tego –

7
<LinearLayout 
     android:id="@+id/layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:focusable="true" 
     android:focusableInTouchMode="true"   
     > 

    <EditText 
     android:id="@+id/retailer_search_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

</LinearLayout> 

Po prostu wykonaj. A EditText powinien znajdować się w LinearLayout.

+0

Chcę, aby ustawić ostrość na polu wyszukiwania po wyświetleniu klawiatury! –

0

To zadziałało dla mnie.

edittext.setInputType(InputType.TYPE_NULL);  
if (android.os.Build.VERSION.SDK_INT >= 11) 
{ 
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT); 
    edittext.setTextIsSelectable(true); 
} 
0

Try This

exitText.setFocusableInTouchMode(true); 
1

Dodaj do tego tagu aktywności w AndroidManifest.xml keyboardHidden: nie pozwolę go automatycznie otworzyć klawiaturę programową wejściowego.

android:configChanges="orientation|keyboardHidden|screenSize" 
android:windowSoftInputMode="stateAlwaysHidden|adjustResize|stateHidden" 
1

miałem klawiatura niepokojąco okienko i pchanie wszystkie widoki aż po kliknięciu na tekst edycji w widoku fragment (moja aplikacja jest aplikacja zagnieżdżonych fragmentów - fragment z fragmentem)

Próbowałam tuzin rozwiązań tutaj i w Internecie, ale nic nie pomogło poza tym, co jest edytowaniem samego siebie w XML (nie widoku powyżej/nie jest manifestem/nie zastępuje go w tworzeniu działań/żadnych innych)

przez dodanie android:focusableInTouchMode="false" linia do twojego xml EditText.

pożyczyłem roztwór z ACengiz tego wątku

how to block virtual keyboard while clicking on edittext in android?

Tylko 2 osób głosowało na niego? choć dla mnie było to wygaszacz po godzinach głowy

Powiązane problemy