Edittext password属性为true导致hint全角问题

hint字体受EditText的text字体影响,即受android:typeface的影响。android:typeface有三个取值:“sans”,“serif”,“monospace”,看源码:

setInputType中:

  if (isPassword) {
            setTransformationMethod(PasswordTransformationMethod.getInstance());
            setTypefaceFromAttrs(null /* fontFamily */, MONOSPACE, 0);
        } else if (isVisiblePassword) {
            if (mTransformation == PasswordTransformationMethod.getInstance()) {
                forceUpdate = true;
            }
            setTypefaceFromAttrs(null /* fontFamily */, MONOSPACE, 0);
        } else if (wasPassword || wasVisiblePassword) {
            // not in password mode, clean up typeface and transformation
            setTypefaceFromAttrs(null /* fontFamily */, -1, -1);
            if (mTransformation == PasswordTransformationMethod.getInstance()) {
                forceUpdate = true;
            }
        }

构造函数中:

  if (password || passwordInputType || webPasswordInputType || numberPasswordInputType) {
            setTransformationMethod(PasswordTransformationMethod.getInstance());
            typefaceIndex = MONOSPACE;
        } else if (mEditor != null &&
                (mEditor.mInputType & (EditorInfo.TYPE_MASK_CLASS | EditorInfo.TYPE_MASK_VARIATION))
                == (EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_PASSWORD)) {
            typefaceIndex = MONOSPACE;
        }

可以看到当为密码栏时字体是

MONOSPACE

默认Sans,所以会导致字体不一致,找到问题的根源那么解决办法就有了,设成默认的就好:

passEdit.setTypeface(Typeface.SANS_SERIF);
时间: 2024-08-27 23:34:45

Edittext password属性为true导致hint全角问题的相关文章

转: js实现全角半角检测的方法

//全角半角校验 function issbccase(strTmp) { for (var i=0; i<strTmp.length; i++) { if (strTmp.charCodeAt(i) > 128){ return true; console.log("全角") break; } } return false; } 原文地址:https://www.cnblogs.com/ilimengyang/p/8946688.html

Android: EditText设置属性和设置输入规则

1.EditText输入限制规则 在xml:EditText 设置属性 android:digits="ABCDE123&*" ABCDE123&*是你的限制规则 例如:android:digits="0123456789abc" 规则是只能输入英文字母(小写)abc和数字 2.EditTex输入的文字为密码形式 (1)在xml中设置 android:password="true" //以"."形式显示文本 (

Android 编辑框(EditText)属性学习

EditText的属性很多,这里介绍几个:android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行.android:password="true"//设置只能输入密码android:textColor =

Android EditText的属性

8.EditText的属性很多 这里介绍几个: android:hint="请输入数字!"//设置显示在空间上的提示信息 android:numeric="integer"//设置只能输入整数,如果是小数则是:decimal android:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行. android:password="true"//设置只能输入密码 android:textC

【翻译自mos文章】SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描

SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描 参考原文: SYS_OP_C2C Causing Full Table/Index Scans (Doc ID 732666.1) 适用于: Oracle Database - Enterprise Edition - Version 10.1.0.2 to 12.1.0.1 [Release 10.1 to 12.1] Information in this document applies to any platform. This

关于Android控件EditText的属性InputType的一些经验,java组合多个参数

关于Android控件EditText的属性InputType的一些经验 2013-11-14 15:08:02|  分类: 默认分类|举报|字号 订阅 1.InputType属性在代码中的设置必须放在setSingleLine()函数之后,否则无效: 2.关于InputType属性xml与代码的对应值如下: android java代码设置EditText输入格式参数对应Description列 setInputType(XXXXXXXX)或者setRawInputType(XXXXXXXX)

WPF中PasswordBox控件的Password属性的数据绑定

原文:WPF中PasswordBox控件的Password属性的数据绑定 英文原文:http://www.wpftutorial.net/PasswordBox.html 中文原文:http://blog.csdn.net/oyi319/article/details/6551532 WPF的PasswordBox控件的Password属性不是依赖属性,无法直接进行数据绑定,为使其在MVVM模式中正常使用,可以为PasswordBox增加一个助手类,代码如下: 注:代码摘自:http://www

以属性为核心驱动的 全领域通用架构设计原理 (简称:属性架构原理)

以属性为核心驱动的全领域通用架构设计原理 (简称:属性架构原理) 联系方式:13547930387 Email:[email protected] 一.个人声明 我,参加工作也有5年多了,是一名普通的不能在普通的程序员,一直在使用公司自己的产品进行开发,因此技术比较菜,此设计完全是按照自己天真的想法而设计的,如果有不合理或很搞笑的地方,请轻拍,由衷的希望大家能提出宝贵的意见: 根据此设计原理我也做了一个简单的(demo)架构来支撑和验证此理论的可行性,由于技术功底不太好,有不合理之处请大家谅解,

当TextBox的ReadOnly属性为true时,Postback后无法读取TextBox之值?

摘要:当TextBox的ReadOnly属性为true时,无法读取Text之值? 文章移至http://petekcchen.com/2009/07/cannot-read-textbox-value-after-postback-when-readonly-is-true.html 原文:大专栏  当TextBox的ReadOnly属性为true时,Postback后无法读取TextBox之值? 原文地址:https://www.cnblogs.com/petewell/p/11516571.