2011-08-30 11 views
9

Solo me pregunto si soy el único en encontrar este comportamiento "extraño".Editar sugerencia de texto muestra espacios adicionales cuando inputType = "textpassword"

Cuando haga un EditarTexto dentro de mi actividad y el establecimiento de su inputType = "textPassword" de la siguiente manera:

<EditText android:text="" android:id="@+id/EditText01" 
      android:hint="This is a hint" android:inputType="textPassword" 
      android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText> 

La pista se muestra con grandes espacios/dobles entre las palabras.

Si elimino el atributo inputType todo vuelve a la normalidad. No he podido encontrar un problema conocido con respecto a este comportamiento.

Por cierto, si uno se pregunta por qué esto es importante (que no es mucho) tratar poner dos widgets EditText uno debajo del otro y establecer el inputType de uno de ellos a "textpassword" que no se ve bien . ¿Alguna idea sobre cómo cambiar la contraseña o los otros edittexts para usar el mismo formato?

Gracias

PS. La pregunta fue agregada aquí primero: http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f pero no encontré una respuesta.

Respuesta

8

Sucede porque el tipo de letra se establece automáticamente en monoespacio en caso de campo de contraseña. Establecer android:typeface="normal" en el campo de contraseña no ayuda.

Aquí código de TextView sources:

if (password) { 
    setTransformationMethod(PasswordTransformationMethod.getInstance()); 
    typefaceIndex = MONOSPACE; 
} else if ((mInputType&(EditorInfo.TYPE_MASK_CLASS 
      |EditorInfo.TYPE_MASK_VARIATION)) 
      == (EditorInfo.TYPE_CLASS_TEXT 
        |EditorInfo.TYPE_TEXT_VARIATION_PASSWORD)) { 
    typefaceIndex = MONOSPACE; 
} 

no puedo encontrar solución sin la aplicación de control personalizado con el tipo de letra overriden de pista.

P.S .: Hay una solución, pero no siempre es aceptable: establecer el tipo de letra en monoespacio en otros EditText.

+0

Muchas gracias por su respuesta. Me ayudó. Para mí trabajé en la solución typeface = "monoespacio". La cosa era ser lo mismo en todas partes. – Sebastian

+0

Me complace ayudarte. Si mi respuesta es útil para usted, márquela como respuesta aceptada. –

+0

gracias, eso me ayudó –

4

Haciendo mEditText.setTypeface(Typeface.DEFAULT); soluciona el problema para mí.

+0

Buena solución. Luché 4 horas para esto y finalmente conseguí este gracias budy – Krishna

Cuestiones relacionadas