vez valores usar una restablecer recuperar puedo primera predeterminados por pasos para moviles icono datos como ajustes acceder android android-layout android-edittext android-softkeyboard

valores - El ajuste de Android no funciona después de la primera vez



restablecer ajustes de red android (8)

Aquí está el código que estaba usando originalmente que entró en este problema:

<EditText android:layout_width="250dp" android:layout_height="wrap_content" android:gravity="center" />

Cuando eliminé la línea de gravedad central de EditText, la panorámica funcionó:

android:gravity="center"

Lo resolví envolviendo EditText en FrameLayout y centrando todo el EditText en FrameLayout. El único problema que causa es que EditText tendrá al menos el ancho del texto de aviso, por lo que los primeros caracteres / palabras escritos no estarán centrados. Esto estuvo bien para mí, pero su kilometraje puede variar :)

<FrameLayout android:layout_width="250dp" android:layout_height="wrap_content"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </FrameLayout>

EDIT: esta solución se rompe si el usuario hace clic en la última palabra en el texto de edición. Ahora estoy usando la solución onKeyPreIme

Mi problema: a partir de la segunda vez que se muestra el teclado del software en la pantalla, oculta por completo mi EditText.

Attribute android: windowSoftInputMode = "adjustPan" se ha especificado en AndroidManifest.xml, pero funciona solo la primera vez.

Tengo el siguiente diseño:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="464dp" android:gravity="top" android:orientation="vertical" android:paddingLeft="16dp" android:paddingRight="16dp" > <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="10" android:background="#E3E3E2" android:gravity="top" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/addListText" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="10" android:contentDescription="@string/addItemContentDescription" android:gravity="bottom|center_horizontal" android:inputType="textLongMessage" android:textColor="#E3E3E2" android:visibility="gone" /> <ImageButton android:id="@+id/addTextListButton" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="1" android:layout_gravity="right" android:background="@android:color/transparent" android:contentDescription="@string/addItemButton" android:scaleType="fitCenter" android:src="@drawable/plus_add" android:visibility="gone" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:gravity="bottom|center_horizontal" android:orientation="horizontal" android:paddingLeft="16dp" android:paddingRight="16dp" > <ImageButton android:id="@+id/syncListsButton" android:layout_width="64dp" android:layout_height="match_parent" android:src="@android:drawable/ic_popup_sync" /> <ImageButton android:id="@+id/showOrHide" android:layout_width="64dp" android:layout_height="match_parent" /> <ImageButton android:id="@+id/delListButton" android:layout_width="64dp" android:layout_height="match_parent" android:src="@android:drawable/ic_menu_delete" /> </LinearLayout> </LinearLayout>

El botón "showOrHide" muestra / oculta el combo "addListText" / "addTextListButton".

Cuando se muestra EditText por primera vez y lo toco, el teclado virtual aparece en la pantalla y el combo "addListText" / "addTextListButton" se panoramiza correctamente. Cuando oculto el teclado y luego lo vuelvo a mostrar, ¡el teclado cubre completamente mi caja de edición addListText!

Alguna idea sobre lo que está pasando? Lo estoy probando en Android 4.2.2.

¡Por favor ayuda! Gracias :-)

editar: ¡También intenté poner el primer LinearLayout dentro de ScrollView pero no funciona!


Después de probar muchas soluciones en el archivo Manifest, lo resolví por debajo, ajustar Pan con el diseño relativo no funciona,

Tu Diseño padre debe ser LinearLayout

Espera que esto ahorre algo de tiempo para las personas.


El problema que está experimentando ahora es un error de plataforma conocido como se describe aquí: code.google.com/p/android/issues/detail?id=182191

La solución no está respaldada y, por lo tanto, no tendrá efecto hasta Android N. Hasta que Android N sea su SDK mínimo, la siguiente solución es una solución alternativa.

Puede crear una clase personalizada que extienda EditText y anular el método onKeyPreIme (int keyCode, KeyEvent event) de esta manera:

@Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { clearFocus(); } return super.onKeyPreIme(keyCode, event); }

También debe asegurarse de que un diseño de nivel superior tenga la capacidad de enfocarse para que el enfoque de EditText se pueda borrar con éxito. Los siguientes atributos pueden funcionar para usted:

android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"

Ahora cuando se presiona la tecla Atrás, EditText pierde el foco. Luego, cuando toque el botón nuevamente, adjustpan funcionará según lo previsto. (Publicar como una respuesta ya que la edición fue rechazada).


En EditText android:layout_gravity="center" Crea este tipo de problema. Si desea que el texto se convierta en centro, puede hacerlo de esta manera

Paso 1: para el diseño

<LinearLayout android:id="@+id/linerPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageView2" android:gravity="center"> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="40dp" android:background="@null" android:hint="*****" android:layout_marginLeft="-40dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:inputType="textPassword" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="18sp" /> </LinearLayout>

paso 2: algo por programaticamente

linerUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mETUserName, 0); mETUserName.requestFocus(); } });

Finalmente funciona muy bien. Encontré esta solución para ajustar softKeyboard


Esto puede parecer un poco tonto, pero me encontré con este problema cuando establecí la gravedad de la propiedad de mi EditText en ''center_horizontal'' o ''center''. El mismo problema ocurre cuando se usa textAlignment ''center''. Quítelo y no se encontrará con el problema de que el teclado oculte EditText la segunda vez (y las siguientes) cuando salga el teclado.


Para mí, anular onKeyPreIme no funciona. Por lo tanto, modifico dispatchKeyEventPreIme lugar.

@Override public boolean dispatchKeyEventPreIme(KeyEvent event) { if(event.getKeyCode() == KeyEvent.KEYCODE_BACK){ clearFocus(); } return super.dispatchKeyEventPreIme(event); }


Por lo general, la bandeja de ajuste no funciona después de la primera vez que presionamos el botón Atrás, intente hacer de la siguiente manera: - (se puede implementar para EditText, AutoCompleteTextView o cualquier otra vista en la que se comporte mal)

@Override public void onBackPressed() { editText.clearFocus(); editText.setCursorVisible(false); }

Espero que ayude a alguien


Subclassed EditText y reemplaza el método onKeyPreIme (int keyCode, KeyEvent event) como este:

@Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { clearFocus(); } return super.onKeyPreIme(keyCode, event); }

Ahora cuando se presiona la tecla Atrás, EditText perdió el foco. Luego, al tocarlo de nuevo, ajustapan funcionará.