首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以编程方式更改TextInputLayout焦点和非焦点提示颜色

基础概念

TextInputLayout 是 Android 中用于包装 EditText 的一个布局组件,它提供了 Material Design 风格的输入框样式,包括浮动标签、错误提示等功能。通过编程方式更改 TextInputLayout 的焦点和非焦点提示颜色,可以增强用户界面的交互性和美观性。

相关优势

  1. 增强用户体验:通过改变提示颜色,可以更直观地提示用户输入状态,提升用户体验。
  2. 自定义风格:可以根据应用的设计风格自定义提示颜色,使应用界面更加统一和专业。

类型

  1. 焦点提示颜色:当 EditText 获得焦点时,提示文字的颜色。
  2. 非焦点提示颜色:当 EditText 未获得焦点时,提示文字的颜色。

应用场景

适用于需要根据用户输入状态动态改变提示颜色的场景,例如表单验证、搜索框等。

实现方法

以下是通过编程方式更改 TextInputLayout 焦点和非焦点提示颜色的示例代码:

代码语言:txt
复制
import android.graphics.Color;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputLayout;
import com.google.android.material.textfield.TextInputEditText;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
        TextInputEditText textInputEditText = findViewById(R.id.textInputEditText);

        // 设置非焦点提示颜色
        textInputLayout.setHintTextColor(Color.GRAY);

        // 设置焦点提示颜色
        textInputLayout.setHintTextColor(Color.BLUE);

        // 监听焦点变化
        textInputEditText.setOnFocusChangeListener((view, hasFocus) -> {
            if (hasFocus) {
                textInputLayout.setHintTextColor(Color.BLUE);
            } else {
                textInputLayout.setHintTextColor(Color.GRAY);
            }
        });
    }
}

参考链接

TextInputLayout - Material Components for Android

常见问题及解决方法

  1. 提示颜色不生效
    • 确保 TextInputLayoutTextInputEditText 正确绑定。
    • 确保在 onCreate 方法中设置颜色,而不是在其他生命周期方法中。
    • 检查是否有其他样式覆盖了设置的提示颜色。
  • 焦点变化监听不触发
    • 确保 setOnFocusChangeListener 正确设置。
    • 确保 TextInputEditText 可以正常获取焦点,没有被其他视图遮挡。

通过以上方法,可以有效地更改 TextInputLayout 的焦点和非焦点提示颜色,提升应用的用户界面交互性和美观性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

强大的提示控件TextInputLayout使用以及源码分析

使用TextInputLayout源码分析两个方面对这个强大的控件进行分析。...,以下几个属性方法需要声明一下: app:hintAnimationEnabled="true"可以开启动画,这个为true时,获得焦点的时候hint提示问题会动画地移动上去。...; mEditText.setLayoutParams(lp); mEditText.requestLayout(); } } 设置错误提示开启关闭的方法...,同时这里的代码也是值得我们进行学习的,只有当用户设置错误提示为真的时候,才会new一个TextView,这样是比较省性能的,接下来是setError方法,设置错误提示的文本信息,里面是一些判断动画的设置...,同时new了一个TextPaint来进行文本的绘制,然后是new出来3个矩形区域,mCollapsedBounds:输入框处于折叠状态下的矩形区域,mExpandedBounds:提示框获得焦点提示文字向上展开的矩形区域

1.8K50
  • TextInputLayout的使用与实现

    Layout配置文件 TextInputLayout效果 在两个输入框切换点击切换的时候,EditText中的文本会有动画的方式飞向左上角。 ?...refreshDrawableState 而在updateLableVisibility函数中,会判断当前EditText中是否有文字或者获取到焦点,如果有的话,则开始执行expandHint(展开文本...200ms的时间,0-1或者1-0的速度进行变化,而在进度回调的时候,会使用mCollapsingTextHelper来更新当前变化的值 ?...animateToExpansionFraction CollapsingTextHelper在这个类中,保存了当前Animation执行的到的状态,比如说当前绘制的hint文案的位置(x,y),画笔的位置颜色...而在setExpansionFraction中,会根据当前的值目标值计算出来要绘制的位置,以及颜色等,最后用ViewCompat的postInvalidateOnAnimation重绘View ?

    1.2K40

    Material Design整理(一)——TextInputLayout

    github地址:https://github.com/shuaijia/MaterialDesignProject 添加依赖 TextInputLayout是在Material Design中的,如果我们要使用的话...,必须在gradle文件中配置 开始使用 TextInputLayout是一种新的继承自LinearLayout的布局,使用时其只能包含一个EditText或其子类控件(如AutoCompleteTextView...) 还可通过设置hinterror来显示浮动标签 注意:一个TextInputLayout中 有且只有 一个EditText!...举例 浮动标签 字数统计 错误提示 密码框右侧图标 虚拟键盘监听 有时候我们在用虚拟键盘的时候,在输入账号之后,我们点击下一项,焦点会跑到输入密码这一栏,当我们密码输入完成之后,点击确定按钮就能登录了...账号EditText中 密码EditText中 AutoCompleteTextView –自动提示输入框 继承自EditText,拥有EditText的所有属性,可以设置在输入时自动在输入框下方提示信息

    50130

    关于无障碍设计的七件事

    提供输入焦点的视觉提示 重置样式表(Reset Stylesheet)给现在的网页设计师带来了各种便利。没有重置样式表,在不同的设备浏览器之间构建一致的体验会很困难。...幸运的是,最初的CSS重置发布以来,许多流行的重置已经更新,去除了:focus伪类的样式化。 取消默认焦点样式的意图很可贵:让设计师开发者使用无障碍的、适合网站样式的东西来替代它们。...如果你选择不使用浏览器的默认焦点,那么请用“更好”的视觉提示替换掉浏览器所提供的。 下面的?来自BBC。它使用颜色条来提示哪个链接处于焦点状态。 ?...Twitter使用默认焦点提示的组合方式来显示焦点,图标也从灰色变成绿色。这是三个独立的视觉效果,可以很好地为键盘用户提供焦点提示。 ? 当你准备使用自己定义的焦点状态时,请记得去除默认的状态。...键盘交互模型从使用箭头键更改为使用Tab键。 它会更改键盘焦点的处理方式以及下拉菜单关闭后的位置。 与搜索的自动补全的例子不同,幸运的是,模态对话框可以继续通过箭头键访问。

    3K30

    电脑技巧:Windows11快捷键大全

    Windows 徽标键 + Ctrl + C 打开颜色筛选器(在颜色筛选器设置中首先启用此快捷方式)。 Windows 徽标键 + D 显示隐藏桌面。...Windows 徽标键 + J 请将焦点设置到可用的 Windows 提示。当出现 Windows 提示时,请将焦点移到提示上。...再次按下键盘快捷方式,将焦点放在屏幕上 Windows 提示所固定的元素上。 Windows 徽标键 + K 从“快速设置”打开“投放”。 在 Windows 11 中更新。...如果要打开它,请使用此键盘快捷方式,然后选择提示打开历史记录。或者,可以选择开始>设置>系统>剪贴板,然后打开剪贴板历史记录下的开关。...Windows 徽标键 + Ctrl + 空格键 对之前选择的输入所做的更改。 Windows 徽标键 + Ctrl + Enter 打开“讲述人”。

    2.4K30

    Material Design 进阶之二-使用TextInputLayout的登陆界面

    它显示了一个欢迎标签(如果有的话,可以很容易地用徽标替换)两个EditText元素,一个用于用户名,另一个用于密码。布局还包括一个触发登录序列的按钮。背景颜色是漂亮,平坦,浅灰色。...---- 显示错误 TextInputLayout 错误处理简单快捷。所需的方法是  setErrorEnabledsetError。...它还将整个EditText小部件的颜色更改为红色。 setErrorEnabled 启用错误功能。这直接影响布局的大小,增加较低的填充以为错误标签腾出空间。...另一个有趣的事实是,如果尚未启用错误功能并且您调用setError传递null参数,setErrorEnabled(true) 则会自动调用。...每个小部件的颜色都直接从style.xml文件中指定的主题颜色中绘制 。只需打开它并将colorAccent项目添加到活动主题即可更改表单的颜色方案。

    1.4K20

    这些Android系统样式中的颜色属性你知道吗?

    colorAccent 许多控件在选中状态或者获取到焦点的时候会使用这个颜色,比如: CheckBox:checked 状态 RadioButton:checked 状态 SwitchCompat:checked...状态 EditText:获取焦点的时候的下划线光标颜色 TextInputLayout:悬浮 label 字体颜色 等等 android:navigationBarColor navigation...比如: 没有被选中的 CheckBox 或者没有被选中的 RadioButton 失去焦点时的 EditText ,Toolbar 溢出按钮颜色 等等 colorControlActivated 在某些时候...也就是说,如果你没有设置的话默认的颜色就是 colorAccent 的颜色 比如: CheckBox RadioButton 的 checked 状态 colorControlHightlight...这里使用了一个 Titlbar 这样效果整体很不搭配,我们需要的是 Titlbar 的背景使用我们的 colorPrimary 字体的颜色使用 浅色文本样式 的颜色,那么这样我们就可以自己定义一个样式

    1.9K10

    >>开发工具:IntelliJ IDEA 2020.3基础技能

    更改IDE外观 1、按⌃` 。 2、在“切换”菜单中,选择所需的选项,然后按⏎。使用相同的快捷方式⌃` 撤消更改。 您也可以在编辑器|查找调整颜色方案设置,包括针对视力障碍者的高对比度颜色方案。...将鼠标悬停在条纹上可查看描述问题的工具提示,或单击该条纹进行快速导航。 在处理文件时,通常会看到许多条纹。当您完成代码时,许多这些错误,警告建议最终都会得到解决。...从红色标记的错误到蓝色标记的TODO注释,不同颜色的条纹表示问题的严重性,但是您可以根据需要更改显示的颜色。 编辑器标签 您可以关闭,隐藏分离编辑器选项卡。...要关闭除活动选项卡固定选项卡之外的所有活动选项卡,请右键单击任何选项卡,然后选择“关闭其他选项卡”。 要仅关闭活动选项卡,请按⌘ W。您也可以在选项卡上的任意位置单击鼠标滚轮按钮将其关闭。...您还可以从节点的列表中选择“常规”选项,以为常规项目(例如代码,编辑器,错误警告,弹出窗口提示,搜索结果等)配置颜色方案设置。

    33920

    Qt Designer中的QWidget属性表介绍

    在模式窗口可见时更改此属性无效,必须先调用hide()隐藏模式窗口,然后再调用show()显示模式窗口。...--- 有些部件在被禁用时会不同的方式显示自己。...---- 输入法使用它来检索有关输入法应如何操作的提示; 例如,如果设置了只允许输入数字的标志,则输入法可能会更改其可视组件,反映只能输入数字。...请注意,该颜色可用于除文字以外的其他用途:一般文本颜色通常用于文本,但对于行,图标等使用文本颜色校色是很罕见的 ColorGroup颜色颜色组是指对应同一外观组合在 激活状态(active,指获得焦点...) 、 激活状态(inactive,未获得焦点但可以获得焦点的状态 )、 失效状态(disable,不能获得焦点 )时的对应颜色

    11K20

    TextInputLayout-Android M新控件

    TextInputLayout控件LinearLayout完全一样,它只是一个容器。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...其中一种就是写一个自定义的方法然后在xml中通过onClick属性指定,我喜欢setOnClickListener的方式,但这只是个人喜好。...另一个有趣的事实是如果错误功能未开启但是你调用了传入null参数的setError,那么setErrorEnabled(true)将自动被调用。...每一个控件的颜色都是直接通过主题颜色绘制的,在 style.xml 中指定。打开它添加colorAccent 到主题改变表单的颜色

    76820

    【Web APIs】JavaScript 操作元素 ⑧ ( DOM 操作元素 案例 | 获取焦点 onfocus 事件 | 失去焦点 onblur 事件 | 获取设置 HTML 页面背景颜色 )

    一、案例需求 实现如下效果 , 默认状态下 , 表单显示灰色提示字体 , 点击表单输入内容是黑色字体的 ; 二、案例核心要点 1、获取焦点事件 - onfocus 事件 在 JavaScript 中 ,...this.value = '请输入搜索内容'; } // 失去焦点后 , 颜色变为灰色 this.style.color = 'gray...document.body.style.backgroundColor 属性 可 用于 设置 或 获取 HTML 页面 的背景颜色 ; 设置背景颜色示例 : document.body.style.backgroundColor...); // 输出当前页面背景颜色 如果没有为 document.body.style.backgroundColor 显式设置值 , 则它将 返回空字符串或浏览器默认的背景颜色 ; 通过直接设置 style.backgroundColor..., 可以 实时更改页面的背景颜色 , 这种方式 比修改 CSS 文件更为便捷 , 尤其适用于动态交互或响应用户事件的情况 ; 3、代码示例 代码示例 : <!

    10410

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    又比如用户希望编辑框能够自我纠错等等;所以,Android从设计之初就努力尝试解决这些问题,先是自带了自动完成编辑框AutoCompleteTextView,后来又在Android5.0以后提供了文本输入布局TextInputLayout...由这张动图可以发现,支付密码输入框至少需要完成以下功能: 1、一开始边框是灰色的,获得焦点后边框变蓝色; 2、输入框一共六个方格,每个方格之间竖线隔开; 3、每个方格只显示一个密码字符,且字符位于方格中央...正确的做法是调用setTransformationMethod方法,给TextView设置转换方式。...其次,对于支付密码输入框的焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部的EditText所抢占,使得密码输入框反而不会响应点击触摸事件...et_account.clearFocus(); ppi_password.requestFocus(); } return false; } 如此改进之后,本文开头的支付密码输入框也就具备了应有的输入显示功能

    1.9K30

    Psychological Science:空间注意的动态切换不影响客体特征捆绑

    实验一主要通过空间提示线索来操纵注意焦点状态:注意焦点维持在某一空间位置(注意维持)、注意焦点从一个位置转移至另一个位置(注意转移)、分离出两个注意焦点(注意分离)。...空间注意在这种特征整合中起着非常重要的作用,其中精确的注意焦点对客体特征整合尤为重要。 特征捆绑包括空间特征间的整合(特征-特征捆绑)、以及空间特征空间特征的整合(特征-位置捆绑)。...实验一主要通过空间提示线索,并对注意焦点状态进行操纵:注意焦点维持在某一空间位置、注意焦点从一个位置转移至另一个位置、分离出两个注意焦点。实验二则主要在实验一的基础上,要求被试报告目标刺激的位置。...,其中一个刺激为目标刺激(T,始终呈现在线索提示位置),一个为关键目标刺激(N1,与目标相邻,且落在注意转移条件的第一线索位置或注意分离条件的另一个线索位置),一个为相邻目标刺激(N2),还有一个对角线目标刺激...图1 实验1,2流程 联合特征分析(Joint-feature analyses) 对于每个试次,响应误差为连续探测报告提示目标之间的角度偏差,每个特征维度均有不同的范围(θC= 颜色偏差

    54430

    Android使用TextInputLayout创建登陆页面

    TextInputLayout控件LinearLayout完全一样,它只是一个容器。跟ScrollView一样,TextInputLayout只接受一个子元素。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...其中一种就是写一个自定义的方法然后在xml中通过onClick属性指定,我喜欢setOnClickListener的方式,但这只是个人喜好。...样式 你可能还想做最后一件事,改变TextInputLayout控件的颜色。默认AppCompact会把它设置成绿色的,但是很有可能这个颜色会和你的颜色主题(color palette)冲突。...每一个控件的颜色都是直接通过主题颜色绘制的,在 style.xml 中指定。打开它添加colorAccent 到主题改变表单的颜色

    1.6K10

    简单了解下无障碍设计模式

    使用颜色、形状、文本动效来传达正在发生的事情 访问你的应用:包含适当的内容标签,适应那些使用纯文字版本的用户 具体的 支持特定平台的辅助技术,就像支持触摸、键盘鼠标的输入方式一样。...其他视觉提示 对于色盲或看不到颜色差异的用户,除了颜色外还增加了设计元素,确保他们能接收到正常人等量的信息。 色盲症分不同的类型(包括红绿色盲、蓝黄色盲单色色盲)。...确定以下的焦点移动方式: 元素接收焦点的顺序 元素分组的方式 拥有焦点的元素消失时,焦点移动到哪里 通过视觉指示器辅助文本的组合,来阐明焦点的位置。...调整你的应用,兼容每个平台的无障碍功能标准无障碍技术(包括快捷方式结构),为用户提供更高效的体验。 正确示例 此屏幕使用了标准平台的对话框。...例如,Android 的 “双击选择” 功能提示用户在选择一个项目时需要点击两次。Android 的 TalkBack 也会提醒元素相关联的任何自定义操作。

    4.8K40

    flutter 输入框组件TextField的实现代码

    我们给上面的代码新增decoration属性,设置相关属性,可以发现当我们的TextField获得焦点时,图标会自动变色,提示文字会自动上移。 ? 还可以看到 我加了一个onChanged。...当用户输入的手机号码不是11位的时候提示手机号码格式错误, 当用户没有输入密码时,提示填写密码, 用户名密码符合要求时提示登录成功。...我们有时候会需要这样的情况, 比如一个登录页面, 需要输入账号密码 , 自然输入完账号就要输入密码了 , 我们在输入账号结束的时候 , 让密码输入框获取到焦点 . 看一下代码: ......:”的数字键盘) TextInputType.multiline(带有选项启用有符号十进制模式的数字键盘) TextInputAction 更改TextField的textInputAction可以更改键盘本身的操作按钮...更改TextField中的光标 可以直接从TextField小部件自定义游标。 可以更改角落的光标颜色,宽度半径。 例如,这里我没有明显的原因制作一个圆形的红色光标。

    4.8K11

    再不迁移到Material Design Components 就out啦

    MDC 1.1.0更改了一些默认的小部件样式,更好地符合“材料设计”准则。...但是,升级后,您可能会注意到某些控件颜色其他属性的某些意外更改。 ? 在上面的示例中,按钮发生了变化、文本图标的颜色发生了变化。FAB 现在变成了蓝绿色,并且文本字段看起来完全不同。不用担心。...下面这几种情况应该考虑 在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件 任何的风格,默认风格默认风格属性应该改变成 MDC 版本 在编程中或者自定义类的父级类使用的任何控件都应该为...要了解哪些小部件使用哪种颜色,需要检查源代码中的默认小部件样式。 AppCompat框架中还存在一些颜色,但不再适用于此新系统。该Theme.MaterialComponents....backgroundTint 属性来调整背景形状颜色

    3.2K30
    领券