Cursor personalizado EditText dibujado incorrectamente en la primera fila

Tengo un EditText en mi diseño principal. También tengo un tema de la aplicación, donde el edittext predeterminado está diseñado con un curdordrawable personalizado.

<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/introEditText" android:gravity="top" android:singleLine="false" android:text="" android:inputType="textMultiLine" android:textSize="24sp" > <requestFocus/> </EditText> <style name="AppTheme" parent="android:Theme.Holo.NoActionBar"> <item name="android:textColor">#ffffff</item> ... <item name="android:editTextStyle">@style/EditTextStyle</item> </style> <style name="EditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:background">@android:color/transparent</item> <item name="android:textCursorDrawable">@drawable/cursor</item> </style> 

Y mi cursor personalizado es:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="2dp" /> <solid android:color="#363636" /> </shape> 

El color del cursor es correcto, aunque su anchura no es. En la primera fila es 1 px de ancho en lugar de la 2dp. Tan pronto como el texto se divide en dos líneas, el cursor se convierte en 2dp de ancho. Además, no se muestra cuando el edittext no tiene texto. He probado esto en 4.4 (HTC One y un Nexus 7) ¿Es esto un error de Android?

En realidad, como el ancho de la EditText aumenta, el tamaño del cursor se establece enmascarado por algún espacio (no se puede averiguar lo que era). Así que la solución es arreglar el ancho de EditText.

 <EditText android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/introEditText" android:gravity="top" android:singleLine="false" android:text="" android:inputType="textMultiLine" android:textSize="24" /> 

Si desea ancho exacto, utilice ems como:

 <EditText android:ems="10" ... /> 

android: ems establece el ancho de un TextView para adaptarse a un texto de letras n 'M' cuando el tamaño del texto 12sp

No creo que haya una forma de evitar esto.

Esto funcionó para mí en el emulador. crear un archivo xml en drawable como lo hizo ya:

edit_text_cursor.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <size android:width="2dip"/> <solid android:color="#00AAEE"/> </shape> 

entonces en su diseño lo crean así:

 <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:singleLine="false" android:textCursorDrawable="@drawable/edit_text_cursor" android:ems="10" android:inputType="textMultiLine" /> 

esto corrige un cursor de píxel en el primero (lo probé):

 android:ems="10" 

esto debería ser suficiente, pero si tiene problemas para mostrar el cursor mientras está vacío. usted puede agregar esto a EditText para forzarlo:

  android:cursorVisible="true" 
  • Edittext de Android quitar foco después de hacer clic en un botón
  • Diferencia entre android: inputType = "textPassword", "textVisiblePassword", "textWebPassword" y "numberPassword" en android?
  • Cómo replicar android: editable = "false" en el código?
  • Administrador de métodos de entrada de Android para obtener el teclado numérico sólo
  • Pantalla completa Con la barra de herramientas y edittext en la parte inferior de Android
  • ¿Existe alguna manera de cambiar la forma en que se resalta el elemento de edición de Android EditText?
  • Cómo cambiar el color del borde (no centrado) de un EditText?
  • Android: validar contraseña, conformar contraseña y pasar un valor de cadena a través de botón
  • Diseño similar a WhatsApp para multilines EditText y botones junto a él
  • Android: crea TextView (o EditText) de forma programática y lo configura en un lugar específico de la pantalla dando coordenadas
  • Androide adjustresize adjustpan tema famoso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.