una teclado sacar poner pantalla letra laptop ingles idioma desactivar como celular cambiar americano activar android keyboard focus drawer

android - sacar - desactivar teclado en pantalla windows 10



cómo mantener el cajón deslizante fuera de la parte superior del teclado virtual (1)

Esta es mi solución. En la Actividad que contiene EditText, tengo una subclase que extiende EditText . En esta subclase, onMeasure() método onMeasure() que comprueba si el teclado está abierto.

public static class MyEditText extends EditText { MyActivity context; public void setContext(MyActivity context) { this.context = context; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = MeasureSpec.getSize(heightMeasureSpec); Activity activity = (Activity)getContext(); Rect rect = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); int statusBarHeight = rect.top; int screenHeight = activity.getWindowManager().getDefaultDisplay().getHeight(); int diff = (screenHeight - statusBarHeight) - height; // assume all soft keyboards are at least 128 pixels high if (diff>128) context.showHandle(false); else context.showHandle(true); super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }

Luego, en la actividad, si el teclado está abierto, el asa del cajón está configurada en una imagen transparente de 1px x 1px; si el teclado está oculto, se muestra el asa real:

private void showHandle(boolean show) { ImageView drawer_handle = (ImageView) findViewById(R.drawable.handle); if (show) drawer_handle.setImageResource(R.drawable.handle); else drawer_handle.setImageResource(R.drawable.handle_blank); }

Finalmente, asegúrese de llamar a setContext() en onCreate() de MyActivity

MyEditText met = (MyEditText) findViewById(R.id.edit_text); met.setContext(this);

Me he estado rascando la cabeza todo el día por esto. en una de mis actividades (y solo una) cuando abro el teclado virtual, aparece el asa del cajón deslizante encima. Logré solucionar este problema en todas las demás actividades de mi aplicación colocando android: windowSoftInputMode = "adjustPan" en cada actividad en mi archivo Manafest.xml, incluida la actividad en cuestión. también, en la medida en que he podido determinar que ninguno de los objetos de la actividad tiene foco (si es que uno no puedo encontrar la manera de encontrarlo). Comprobé el foco utilizando this.getCurrentFocus () y luego haciendo view.clearFocus () en la vista devuelta si había uno. hasta el momento no ha devuelto una vista, por lo que puedo decir, nada tiene foco.

¿algunas ideas?