Android: Edittext con centro de gravedad que no funciona en el dispositivo
En Android estoy usando una línea de edittext con la gravedad puesta al centro. En el Emulador esto funciona muy bien tanto la pista como un cursor parpadeante aparecen. Al probar en el dispositivo (Xperia X10) no aparece el texto de la pista ni el cursor parpadeante. El cursor parpadeante sólo muestra si introdujo algún texto en el editor.
Este es mi edittext, ¿puede alguien ver si algo falta?
- Configuración de EditText con "url" inputType
- XML de Android: se desplaza entre campos EditText
- Editar el foco de texto en android
- Problemas enfocando EditTexts en un ListView (Android)
- ¿Cómo puedo hacer que 2 caracteres se superpongan entre sí en un Android EditText
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center" > <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:ellipsize="end" android:maxLines="1" android:gravity="center" android:layout_gravity="center" android:hint="Some hint text" ></EditText> </LinearLayout>
Lo que quiero:
Lo que obtengo con el código anterior (edittext vacío sin cursor):
- Obtener los valores de EditText de ListView
- Android: Establecer Editar texto o ver la vista de texto Programáticamente
- Editar texto sin autocorrección
- ¿Cómo verificar la tarjeta PAN?
- Cómo agregar dos campos de texto de edición o vistas en un cuadro AlertDialog?
- Editext cambia el color del borde con shape.xml
- Mostrar la contraseña con EditText
- Identificar el tipo de patrón de regex
Finalmente encontré la solución para que funcionara. Este EditText funciona para mí: (Probado en Sony Ericsson X10 y HTC Wildfire)
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:digits="0123456789.," android:ellipsize="start" android:maxLines="1" android:gravity="center" android:hint="Some hint text" ></EditText>
Pienso, usted debe fijar la gravedad del parentLayout de su EditText, al centro
EDIT:
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:id="@+id/linearLayout"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="numberDecimal" android:ellipsize="end" android:maxLines="1" android:hint="Some hint text"/> </LinearLayout>
Espero que no sea demasiado tarde. Me encontré con este problema y no sé si es el mismo para todos los dispositivos, pero aparece EditText
por defecto tiene relleno inferior .
Mi valor de texto de EditText siempre parecía estar ligeramente por encima del centro a pesar de que la gravedad de la gravedad para ser CENTER
por lo que, además, establecer:
myEditText.setPadding(0, 0, 0, 0);
Esto lo arregló para mí, ahora mi EditText está perfectamente centrado: D
En lugar de añadir la gravedad en la etiqueta de estilo, agrega que dentro del archivo de diseño que funcionará
Traté una combinación de gravidades:
android:gravity="top|center_horizontal"
Mi intento anterior fue anidar el EditText dentro de un RelativeLayout y ponerlo al centro, pero no se veía tan bien, de esta manera funciona mejor para mí.
- En el archivo XML, añada la gravedad CENTER_HORIZONTAL para definir la sugerencia a center.CURSORVISIBLE = false para que el cursor no sea visible cuando haga clic en la primera vez
- En java use addTextChangedListener, cuando el usuario añade texto que cambia la gravedad del tiempo a la izquierda y también el cursor visible.
XML:
<EditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="EMAIL" android:textStyle="bold" android:gravity="center_horizontal" android:inputType="textEmailAddress" android:layout_margin="10dp" android:cursorVisible="false" />
JAVA:
email.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (s.length() > 0) { // position the text type in the left top corner email.setGravity(Gravity.LEFT | Gravity.TOP); email.setCursorVisible(true); } else { // no text entered. Center the hint text. email.setGravity(Gravity.CENTER); email.setCursorVisible(false); } } });
- Fragmento anterior visible bajo el nuevo fragmento
- Android: Aplicar diferentes temas a fragmentos de una actividad