当前位置: 首页 > 知识库问答 >
问题:

以编程方式设置TextInputLayout提示文本颜色和浮动标签颜色

谈桐
2023-03-14

我使用TextInputLayout,如果输入字段是强制性的,我希望以编程方式设置提示文本颜色和浮动标签颜色。在转到TextInputLayout之前,我使用以下方法以编程方式设置提示文本颜色

textfield.sethintTextColor(color.red);

有人能指导我如何通过编程方式为TextInputLayout设置提示文本颜色和浮动标签颜色吗。

共有1个答案

太叔凌龙
2023-03-14

我用反射改变了聚焦颜色。这是一个片段,它可能会帮助某人。

private void setUpperHintColor(int color) {
    try {
        Field field = textInputLayout.getClass().getDeclaredField("mFocusedTextColor");
        field.setAccessible(true);
        int[][] states = new int[][]{
                new int[]{}
        };
        int[] colors = new int[]{
                color
        };
        ColorStateList myList = new ColorStateList(states, colors);
        field.set(textInputLayout, myList);

        Method method = textInputLayout.getClass().getDeclaredMethod("updateLabelState", boolean.class);
        method.setAccessible(true);
        method.invoke(textInputLayout, true);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

编辑2018-08-01:

如果使用的是设计库V28.0.0及更高版本,则字段已从MdefaultTextColor更改为DefaultHintTextColor,并从MfocusedTextColor更改为FocusedTextColor

 类似资料:
  • 我正在使用MaterialComponents大纲TextInputLayout。我需要在提示文本上设置不同的颜色: “Main”提示(当TextInput中没有文本时)-->带有60%alpha的黑色 浮动提示-->与轮廓相同的颜色(即非活动时为colorPrimary,活动时为colorAccent) 我正在使用Android:TextColorHint设置主提示颜色,App:HintText

  • 就像外面的数百个问题一样,我想改变暗示的颜色。本来我想在评论中问另一个这样的问题(未回答),但我没有足够的声誉,所以我在这里问。 我希望当提示在TextInputEditText中时是一种颜色,当它浮动时是另一种颜色。在其他帖子中,答案总是在视图聚焦时如何更改提示。那不是我想要的,我能做到。如果编辑文本不是空的,我想更改提示颜色。我正在使用材料设计textInputLayout和TextInput

  • 参考Google发布的新,如何更改浮动标签文本颜色? 在样式中设置、、没有帮助 这就是我现在拥有的:

  • 我的需要是,为一个屏幕的应用程序,其中有白色的背景,并在白色的背景,我必须显示Textinputlayout提示,文本,编辑文本颜色在黑色字体。

  • 我正在编辑以使问题更简单,希望这有助于获得准确的答案。 假设我有以下形状: 如何从一个活动类中以编程方式设置颜色?