2011-01-21 19 views
7

Este código no parece funcionar en modo horizontal:Muestra teclado en pantalla cuando el dispositivo está en modo paisaje

EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch); 

destinationSearch.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE);
imm.showSoftInput (destinationSearch, InputMethodManager.SHOW_IMPLICIT);

¿Hay alguna solución para mostrar el teclado virtual en modo horizontal?

+0

parece funcionar con la bandera SHOW_FORCE: D – andreea

Respuesta

10

Es necesario utilizar espectáculo obligado

InputMethodManager imm; 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY); 
imm.showSoftInput(this.editText,InputMethodManager.SHOW_FORCED); 
+0

¿Por qué necesita para toggleSoftInput con HIDE_IMPLICIT_ONLY? –

1

La razón es que el modo de paisaje más a menudo puso teclado de software en una nueva ventana a pantalla completa. Como dijo Bakih, la fuerza funcionará pero la ventana de pantalla completa tiene más efectos y también lo hace SHOW_FORCED.

prefiero añadir

<item name="android:imeOptions">flagNoFullscreen</item> 

a mi EditTextStyle por lo que siempre se puede coger onGlobalLayout() y así sucesivamente. Ahora puede usar SHOW_IMPLICIT. Solo asegúrese de que su UI se vea bien en un área tan pequeña y elimine la autocorrección si no es necesario.

0
EditText editText = (EditText)findViewById(R.id.editText); 

editText.setFocusableInTouchMode(false); 

final Context context = this; 

editText.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     v.requestFocusFromTouch(); 

     InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.showSoftInput(v, InputMethodManager.SHOW_FORCED); 

    } 
}); 
+2

Puede que le resulte útil agregar una explicación a su respuesta para que los lectores puedan ver por qué su respuesta es la mejor, en lugar de solo el código postal solo. Puede agregar a su respuesta presionando el botón "' edit' ". –

Cuestiones relacionadas