2011-08-30 28 views
9

Chỉ cần tự hỏi, tôi là người duy nhất gặp phải hành vi "lạ" này.Gợi ý EditText hiển thị khoảng trống thừa khi inputType = "textpassword"

Khi đặt một EditText bên trong hoạt động của tôi và đặt nó inputType = "textPassword" như sau:

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

Các gợi ý được hiển thị với lớn hơn/không gian đôi giữa các từ.

Nếu tôi xóa thuộc tính inputType, tất cả sẽ trở lại bình thường. Tôi không thể tìm thấy sự cố đã biết về hành vi này.

BTW- Nếu bạn tự hỏi tại sao điều này lại quan trọng (không phải là nhiều) hãy thử đặt hai tiện ích EditText ở bên dưới và đặt inputType của một trong số chúng thành "textpassword". . Bất kỳ ý tưởng nào về cách thay đổi mật khẩu hoặc các edittexts khác để sử dụng cùng một định dạng?

Cảm ơn

PS. Câu hỏi đã được thêm vào đây đầu tiên: http://groups.google.com/group/android-developers/browse_thread/thread/88738bb8d8046f6f nhưng tôi không tìm thấy câu trả lời.

Trả lời

8

Điều này xảy ra vì kiểu chữ tự động được đặt thành monospace trong trường hợp của trường mật khẩu. Thiết lập android:typeface="normal" trên trường mật khẩu không hữu ích.

Đây mã từ 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; 
} 

tôi không thể tìm thấy giải pháp mà không thực hiện điều khiển quen thuộc với kiểu chữ overriden cho gợi ý.

P.S .: Có một giải pháp, nhưng không phải lúc nào cũng được chấp nhận - để đặt kiểu chữ thành monospace trên EditText khác.

+0

Cảm ơn rất nhiều câu trả lời của bạn. Nó đã giúp đỡ tôi. Đối với tôi đã làm việc với giải pháp "monospace" kiểu chữ. Điều này chỉ ở cùng một nơi. – Sebastian

+0

Tôi rất vui được giúp bạn. Nếu câu trả lời của tôi hữu ích cho bạn, hãy đánh dấu nó là câu trả lời được chấp nhận. –

+0

cảm ơn, đã giúp tôi –

4

Làm mEditText.setTypeface(Typeface.DEFAULT); khắc phục sự cố cho tôi.

+0

Giải pháp tốt. Tôi đã vật lộn 4 giờ cho điều này và cuối cùng đã nhận được một điều này cảm ơn budy – Krishna

Các vấn đề liên quan