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

以编程方式更改TextInputLayout textColorHint颜色以指示/显示内部禁用的editText

应和光
2023-03-14
    <!-- Legacy TextField Theme-->
    <style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
        <item name="colorControlNormal">@color/textPlaceholderColor </item>
        <item name="colorControlActivated">@color/textFieldColor</item>
        <item name="colorControlHighlight">@color/textFieldColor</item>
    </style>


    <!-- TextField Hint Theme-->
    <style name="TextInputLayoutHintText">
        <item name="android:textColor">@color/textPlaceholderColor</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textColorHint">@color/disableTextColor </item>
    </style>

    <!-- TextField Text Color Hint Theme Disabled-->
    <style name="TextInputLayoutHintTextDisabled">
        <item name="android:textColor">@color/disableTextColor </item>
        <item name="android:textSize">16sp</item>
        <item name="android:textColorHint">@color/disableTextColor </item>
        <item name="hintTextColor">@color/disableTextColor </item>
    </style>
<com.google.android.material.textfield.TextInputLayout
            android:id="@+id/forgetTextInputLayout2"
            style="@style/TextInputLayoutAppearance"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginTop="10dp"
            android:layout_marginEnd="20dp"
            android:elevation="12dp"
            app:endIconMode="clear_text"
            android:textColorHint="@color/textPlaceholderColor"
            app:hintTextAppearance="@style/TextInputLayoutHintText"
            app:layout_constraintEnd_toEndOf="@+id/forgetForm"
            app:layout_constraintStart_toStartOf="@+id/forgetForm"
            app:layout_constraintTop_toBottomOf="@+id/forget_submit_email">

            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/forgetVerification"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:fontFamily="@font/open_sans"
                android:hint="@string/ForgetForm3"
                android:inputType="textPersonName"
                android:singleLine="true"
                android:textColor="@drawable/edit_text_selector"
                android:textCursorDrawable="@drawable/cursor_color"
                android:textSize="18sp" />
        </com.google.android.material.textfield.TextInputLayout>

彩色文件

  <color name="colorPrimary">#00BEBA</color>
    <color name="colorPrimaryDark">#00BEBA</color>
    <color name="colorAccent">#F60606</color>
    <color name="white">#FFFFFF</color>
    <color name="green">#17B3AB</color>
    <color name="version">#0B0008</color>
    <color name="appBackgroundColor">#00BEBA</color>
    <color name="textPlaceholderColor">#807E7E</color>
    <color name="textFieldColor">#000000</color>
    <color name="textFieldCursorColor">#FB0000</color>
    <color name="textFieldHightLightColor">#2196F3</color>
    <color name="customGreen">#92CFCD</color>
    <color name="defaultLinkBlue">#007aff</color>
    <color name="facebookBlue">#3B5998</color>
    <color name="disableTextColor">#3C95A1A0</color>

共有1个答案

阳宾实
2023-03-14

您可以使用自定义样式进行设置:

    <com.google.android.material.textfield.TextInputLayout
        style="@style/MyTextInputLayout"

定义选择器:

  <style name="MyTextInputLayout " parent="Widget.MaterialComponents.TextInputLayout.FilledBox" >    
   <item name="android:textColorHint">@color/my_selector</item>.  
  </style>

与:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:alpha="0.38" android:color="@color/colorSecondaryLight" android:state_enabled="false"/>
    <item android:alpha="0.6" android:color="@color/colorPrimary"/>
</selector>
    TextInputLayout textInputLayout = findViewById(R.id.til);                   
    textInputLayout.setDefaultHintTextColor
      (ContextCompat.getColorStateList(this,R.color.selector));
 类似资料:
  • 我已经读过一些关于颜色的线程,但所有这些线程都必须通过style.xml进行设置。 现在我用这个来确定颜色。 是否可以不使用XML,例如使用代码来更改SwitchCompat/Checkbox的颜色?

  • 我正在尝试通过代码更改白色标记图像的颜色。我已经阅读了下面的代码应该改变颜色,但我的标记仍然是白色的。 我错过了什么吗?有没有其他方法可以更改位于我的res文件夹中的可绘制对象的颜色?

  • 然而,当我运行该应用程序时,我没有看到任何变化。更改背景本身: 将整个更改为-不是我想要的! 如何以编程方式更改、或的下划线颜色?我使用的是支持库的25.0.1版本。

  • 我的目标是根据用户是否登录显示不同的第一页。登录检查使用同步Ajax调用进行,其结果决定是显示登录对话框还是显示第一个用户页面。 执行此操作的正常方法是设置,然后以编程方式初始化,如本问题的答案中所述。由于某种原因,这不起作用,而是每次都会加载另一个页面。 我决定放弃这种方式,尝试不同的方案。我现在使用一个占位符,空的启动页面,只要登录检查需要,就应该显示该页面。登录检查后,它应该会自动更改。这是

  • 问题内容: 情况:我正在与Wicket一起工作。我在具有黑色背景的页面上设置了按钮。当用户按下按钮时,按钮的活动指示灯熄灭并旋转,直到系统准备好继续运行为止。 问题:由于背景为黑色,因此指示器看起来不正常。由于指示器的一部分是黑色动画,因此在黑色背景上使用指示器会丢失一些细节。 问题:在Wicket中是否可以更改[按钮,链接等] 的颜色,还是我必须以新的方式设计页面? 问题答案: 这是不可能的。好

  • 我做了一个均衡器来配合我的应用程序,但我不确定如何改变搜索栏的拇指和进度颜色。默认情况下,它似乎是粉红色的,这不符合我的应用程序的美学。