更改TextInputLayout提示字体

3

你好,我正在使用Kotlin为TextInputLayout设置提示文本的字体,如下所示:

   passwordTextLayout.typeface = Typeface.createFromAsset(context.assets, "fonts/af/myfont.ttf")

其中myfont.ttf是个人字体文件

只有当提示放置在文本输入布局的编辑文本中时才起作用,但是当我点击编辑文本并开始输入时,提示会折叠并将字体更改为默认字体!

我希望在两种情况下都使用相同的字体来显示提示,即当提示位于编辑文本内部和折叠时。

当提示位于编辑文本中时的图片(查看字体更改的f)

输入图像描述

当用户单击编辑文本时,字体更改如下(请查看字符f)

输入图像描述


看一下这个问题,我已经添加了只有一行 Kotlin 代码! - Tech Nerd
抱歉,我之前没有看到。您使用的设计库版本是哪个? - dglozano
它的版本是28.0.0。 - Tech Nerd
1个回答

1

好的,显然在使用输入类型为password的TextInputLayouts中存在字体问题。如果您使用TextView.setInputType()中的任何一个:

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
InputType.TYPE_TEXT_VARIATION_PASSWORD
InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD
InputType.TYPE_NUMBER_VARIATION_PASSWORD

然后Android会应用等宽字体。

我认为更好的解决方法是执行以下操作:

  1. 从视图的xml定义中删除android:inputType="textPassword"。
  2. 使用Caligraphy3库应用字体。
  3. 在代码中设置PasswordTransformation

...

 password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
 password.setTransformationMethod(PasswordTransformationMethod.getInstance());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接