我正在尝试以编程方式更改提示文本的大小,但是我找不到正确的方法。我正在使用setHintTextAppearance,如示例所示,但是它仅在输入集中或填充了某些数据时才起作用。我也尝试设置EditText textSize,但还是没有运气。

textInputLayout.setHintTextAppearance(Vabaco_TextInputLayout_hint_small);
EditText a = textInputLayout.getEditText();
a.setTextSize(8);

最佳答案

您可以使用以下反射来更改提示文本不集中时的大小:

 try {
        Field filed = TextInputLayout.class.getDeclaredField("mCollapsingTextHelper");
        filed.setAccessible(true);
        Object helper = filed.get(textInputLayout);

        Field f1 = helper.getClass().getDeclaredField("mExpandedTextSize");
        f1.setAccessible(true);

        f1.set(helper,100);
    }
    catch (NoSuchFieldException | IllegalAccessException e) {
        e.printStackTrace();
    }


根据TextInputLayout的依赖版本,mExpandedTextSize的名称可能会有所不同。您应该检查TextInputLayout和CollapsingTextHelper类以获取变量名称。

希望这对您有所帮助。

关于android - 设置默认值(未聚焦)TextInputLayout提示textSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57317427/

10-10 17:28