saad
Tengo un texto de edición:
<LinearLayout android:id="@+id/linearLayout7" android:layout_width="match_parent" android:layout_height="wrap_content">
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1" android:id="@+id/editText1" android:text="3">
<requestFocus></requestFocus>
</EditText>
<Button android:text="Button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button2"></Button>
</LinearLayout>
y luego algunas otras cosas debajo
El problema que tengo es que justo cuando se inicia la aplicación, el foco está en la entrada, no quiero que el foco esté en la entrada justo cuando se inicia la aplicación.
Intenté quitar el
<requestFocus></requestFocus>
cosa y no hizo nada.
Mudassir
Añade el android:focusable="true"
y android:focusableInTouchMode="true"
elementos en el diseño principal de Editar texto de la siguiente manera;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout7" android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true" android:focusableInTouchMode="true">
Creo que debería ayudarte.
Ver también;
Guía oficial para desarrolladores de Android sobre el manejo del tacto y la entrada
-
@Saad: Funciona. Lo he probado antes de publicarlo aquí. Mantenga el elemento en la parte superior del archivo XML. Por cierto, ¿para qué nivel de API (o versión de Android) está desarrollando?
– Mudassir
30 de septiembre de 2011 a las 3:42
-
bien. ¿Puede explicar para qué se usa android:focusable y android:focusableInTouchMode (me refiero a la diferencia y el uso).
– Anoop
14 de enero de 2015 a las 7:25
-
Agregue esto al padre también, si no funcionó:
android:descendantFocusability="beforeDescendants"
– A. Rager
1 de noviembre de 2016 a las 18:02
-
Funciona, pero cuando hago clic en el texto de edición, ¡el teclado no aparece!
– ensueño_ss
11 de agosto de 2018 a las 14:09
-
@reverie_ss tienes razón, también estoy experimentando el mismo problema.
– Ahesanali Suthar
26 de julio de 2020 a las 10:29
Si desea borrar el enfoque predeterminado en el texto de edición, use los siguientes 2 atributos
android:focusable="false"
android:focusableInTouchMode="true"
dentro del diseño lineal principal.
por ejemplo:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="true"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="email id"
android:inputType="textEmailAddress"
android:maxLines="1"
/>
</LinearLayout>
Si desea ocultar el teclado en la creación de actividad, use estos atributos dentro de la etiqueta de actividad del archivo de manifiesto, por ejemplo:
<activity
android:configChanges="screenSize|orientation|keyboardHidden"
android:screenOrientation="portrait"
android:name=".activities.LoginActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
Si desea ocultar el teclado al hacer clic en el botón o en algún evento, use el siguiente código
public void onClick(View v) {
try {
//InputMethodManager is used to hide the virtual keyboard from the user after finishing the user input
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
Si desea quitar el foco de los campos de texto de edición después de salir de la actividad
@Override
protected void onResume() {
super.onResume();
mEmail.clearFocus();
mPassword.clearFocus();
}
Y finalmente, si desea borrar los datos en los campos de texto de edición al enviar el formulario, use
@Override
protected void onResume() {
super.onResume();
mEmail.getText().clear();
mPassword.getText().clear();
}
NO Más trabajo… simplemente agregue android:windowSoftInputMode=”stateAlwaysHidden” a la etiqueta de actividad del archivo Manifest.xml.
-
Explique qué hace esto y cómo puede ayudar al OP. Las sugerencias sin explicación no ayudan mucho, incluso si la solución podría funcionar.
– SuperBiasedMan
10 de agosto de 2016 a las 14:28
-
Consulte esto.. el enlace de arriba.. .
– Nishanth S. Babu
12 de agosto de 2016 a las 11:25
-
Eso ocultará el teclado, pero EditText aún mantiene el foco, si no recuerdo mal.
– A. Rager
1 de noviembre de 2016 a las 18:00
-
¡API 27 todos los métodos mencionados no FUNCIONAN!
– Yaroslav Ducal
11/06/2019 a las 10:00
manish singh
Puede usar el modo de entrada suave de la ventana oculto para ocultar el teclado y android:focusable="false"
y android:focusableInTouchMode="true"
<activity
android:name=".MainActivity"
android:windowSoftInputMode="stateHidden"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Azad Qaderzadeh
prueba este código en LinearLayout
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:hint="Search..."
android:drawableRight="@drawable/ic_search"
android:id="@+id/search_tab_hotbird_F"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recyHotbird_F"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
Rayo Tarit
Funcionó para mí, deseo que también te ayude.
O :
android:windowSoftInputMode="stateAlwaysHidden"
agregue esta propiedad a su archivo Manifest.xml en esa actividad específica en la que desea deshabilitar el enfoque automático.
Contras: Solo ocultará su teclado virtual, el cursor seguirá allí.
Más :
android:focusableInTouchMode="true"
agregue esta propiedad a su archivo UI xml (bajo el diseño principal), de modo que oculte el foco también en el teclado.
Jack Xu
<EditText
android:id="@+id/input"
android:layout_width="0dp"
android:layout_height="48dp"
android:focusable="false"
android:focusableInTouchMode="false" />
detailInputView = (EditText) debugToolsView.findViewById(R.id.input);
detailInputView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
detailInputView.setFocusable(true);
detailInputView.setFocusableInTouchMode(true);
return false;
}
});
-
Pero esto tampoco ayudó a enfocarse en el campo de edición de texto, solo cambió la forma en que se cargan los elementos en el dispositivo, aunque funciona
– LGS
26 de noviembre de 2017 a las 11:30
Establecer android:focusable=”falso”. No se centrará en su EditText
– Nishant Shah
29 de septiembre de 2011 a las 7:33
eso hará que no se pueda fausar para siempre? ahora, incluso si hago clic en el campo de texto, no se enfocará. Quiero enfocar cuando se hace clic, pero no automáticamente cuando se inicia la aplicación
– Saad
29 de septiembre de 2011 a las 7:41
primero puede comenzar con obtener la identificación del botón y establecer el enfoque en el botón en su código …
– Hanry
29 de septiembre de 2011 a las 7:42
Hice esto: a_button = (Button) findViewById(R.id.a_button); a_button.requestFocus(); justo al comienzo del código, pero no hizo nada. ¿Puedo establecer el enfoque a través de xml?
– Saad
29 de septiembre de 2011 a las 8:04
agregando
android:focusableInTouchMode="true"
en mi diseño principal funciona para mi.– Marcelo Gracietti
12 mayo 2017 a las 15:05