Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

<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:

Esto es lo que quiero

Lo que obtengo con el código anterior (edittext vacío sin cursor):

El edittext no muestra el texto de la pista y no tiene ningún cursor parpadeante

  • Cómo cambiar el color de enfoque de EditText en Android
  • Hacer que EditText acepte y muestre texto con formato HTML
  • Android newline en mi EditText
  • Cómo cambiar el color / apariencia de EditText select handle / anchor?
  • EditText cómo activar copia / pegar popup sin barra de acción?
  • Establecer color del cursor EditText
  • Android: No se puede saber cómo usar setImeActionLabel
  • Android: TextInputLayout esconde drawableRight de un niño EditText
  • 6 Solutions collect form web for “Android: Edittext con centro de gravedad que no funciona en el dispositivo”

    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); } } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.