tapar - salto de linea edittext android
Android: ¿Cómo evito que el teclado virtual suba mi vista? (23)
Tengo un cajón deslizante vertical en la parte inferior de mi aplicación. Cuando se abre el teclado virtual, empuja la pestaña del cajón hacia arriba, de modo que se coloca sobre el teclado. Realmente quiero que permanezca en la parte inferior de la pantalla, quedando oculto cuando se muestra el teclado.
Alguien mas se encuentra con este problema? ¿Sabes como arreglarlo?
@manifest en tu actividad:
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
Agregue el siguiente código a la ''actividad'' del archivo Manifest.
android:windowSoftInputMode="adjustResize"
Bueno, he visto estas respuestas, pero en mi caso caí en el mismo problema y me refugié a través de una solución muy práctica y fácil que involucra poner un atributo inocente muy pequeño en su etiqueta Scrollview que reside en su archivo XML. Es decir
android:isScrollContainer="false"
¡Buena suerte!
En mi caso, la razón por la que los botones se empujaron hacia arriba fue porque la vista sobre ellos era un ScrollView
, y se colapsó con los botones que estaban sobre el teclado sin importar el valor de android:windowSoftInputMode
que estaba configurando.
Pude evitar que mi fila inferior de botones se empujara hacia arriba con el teclado suave configurando android:isScrollContainer="false"
en el ScrollView
que se encuentra sobre los botones.
En mi caso, necesitaba que el teclado permaneciera oculto y, justo después de hacer clic en el botón, mi diseño necesita ser ajustado, así que simplemente agregué este comando en el manifiesto y lo hice muy bien.
android:windowSoftInputMode="stateHidden|adjustResize"
Estas respuestas aquí no me ayudaron. Así que intenté esto:
android:windowSoftInputMode="adjustResize"
Esto funcionó como un encanto, ahora el encabezado de mi aplicación no desaparece. Es más suave.
Este código puede ayudarte. Úsalo en tu método oncreate
.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Este funciono para mi
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
Esto fue lo mejor que me funcionó.
android:windowSoftInputMode="adjustNothing"
¡Intentalo!
Hasta el momento, las respuestas no me ayudaron, ya que tengo un botón y un campo de entrada de texto (lado a lado) debajo de la vista de texto que se mantuvo oculta por el teclado, pero esto ha resuelto mi problema:
android:windowSoftInputMode="adjustResize"
Incluya en su archivo de manifiesto la actividad que desea mostrar. Pero asegúrese de no usar la Actividad de pantalla completa.
android:windowSoftInputMode="adjustPan"
Intenta usar esto:
android:windowSoftInputMode="stateHidden|adjustPan"
La ventana principal de la actividad no cambiará de tamaño para dejar espacio para el teclado virtual. Más bien, el contenido de la ventana se panoramizará automáticamente para que el foco actual nunca quede oculto por el teclado y los usuarios siempre puedan ver lo que están escribiendo.
android:windowSoftInputMode="adjustPan"
Esta podría ser una mejor solución para lo que desea.
Ninguna de las respuestas funcionó para mí, pero esto funcionó:
android:windowSoftInputMode="adjustNothing"
Para futuros lectores.
Quería un control específico sobre este tema, así que esto es lo que hice:
Desde un fragmento o actividad, oculte sus otras vistas (que no son necesarias mientras el teclado está arriba), luego restáurelas para resolver este problema:
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);
int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
//ok now we know the keyboard is up...
view_one.setVisibility(View.GONE);
view_two.setVisibility(View.GONE);
}else{
//ok now we know the keyboard is down...
view_one.setVisibility(View.VISIBLE);
view_two.setVisibility(View.VISIBLE);
}
}
});
Para hacer esto programáticamente en un fragmento puedes usar el siguiente código
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Coloca esto en onResume ()
Para la vista de desplazamiento:
si después de agregar android:windowSoftInputMode="stateHidden|adjustPan"
en su Android Manifest y aún no funciona.
Puede verse afectado porque cuando aparezca el teclado, estará en una vista de desplazamiento y si su botón / cualquier objeto no está en su vista de desplazamiento, los objetos seguirán el teclado y moverán su posición.
Revise su xml donde se encuentra su botón y asegúrese de que esté debajo de su corchete Ver de desplazamiento y no fuera de él.
Espero que esto ayude. :RE
Para los usuarios de xamarin, agregue este código al atributo Actividad de la clase MainActivity,
WindowSoftInputMode =Android.Views.SoftInput.AdjustNothing
o puede agregar este código Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)
al método OnCreate de la clase MainActivity.
Puede intentar agregar este atributo dinámicamente, colocando el siguiente código en el método onCreate
de su actividad:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Esto funcionó para mí, más bien que:
android:windowSoftInputMode="adjustPan"
no lo hice
Simplemente puede cambiar el indicador windowSoftInputMode de su actividad a "adjustPan" en el archivo AndroidMainfest.xml para insertar su etiqueta de actividad. Consulte la documentación oficial para más información.
<activity
...
android:windowSoftInputMode="adjustPan">
</activity>
Solo una linea para ser agregada ...
Agregue android:windowSoftInputMode="stateHidden|adjustPan"
en la actividad requerida de su manifest file
.
Acabo de resolver :)
android:windowSoftInputMode="stateHidden|adjustNothing"
Este código funciona.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Este está trabajando para mí.