TextInputLayout使用方式之修改样式

Android修行手册 - TextInputLayout使用学习 设置用于编辑文本在框模式下折叠的顶部填充的值。 阅读详情

最近做的项目使用到了TextInputLayout这个控件。它是desig包下的。

material design是Android5.0之后引入的。它新增了一些控件。有需要了解的朋友请自行翻阅资料。下面是它的依赖

compile 'com.android.support:design:27.0.2'

TextInputLayout控件继承LinearLayout,使用时包含且只能包含一个EditText输入框。它可以显示浮动效果。它的很多属性还是跟EditText一样。但是我在开发时,因项目需要将默认的hint颜色,下划线颜色,点击后的颜色都需要修改。它默认是这种颜色的,看下图

这种是默认样式,它产生了一种浮动效果,看起来非常炫酷。

它的代码如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:paddingLeft="@dimen/forty_dp"
    android:paddingRight="@dimen/forty_dp"
    android:paddingTop="@dimen/one_hundred_twenty_dp"
    tools:context="com.example.administered.swiperefreshlayouttest.view.activitys.MainActivity">
    
    <android.support.design.widget.TextInputLayout
        android:id="@+id/login_textinput_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        
        <EditText
            android:id="@+id/login_userId"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入账号"
            android:inputType="number"
            android:maxLines="1"
            android:singleLine="true"
             />
        
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/login_textinput_pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/login_textinput_id"
        android:layout_marginTop="@dimen/five_dp"
        >

        <EditText
            android:id="@+id/login_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true"
             />
       
    </android.support.design.widget.TextInputLayout>
    
    <Button
        android:id="@+id/sign_in_button"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/login_textinput_pwd"
        android:layout_marginTop="@dimen/twenty_dp"
        android:background="@drawable/btn_nor_up"
        android:text="登录"
        android:textStyle="bold" />

</LinearLayout>

我因为项目需要,需要将默认下划线颜色,hint等颜色需要做改变,因为背景要变成深色。这种默认的颜色,在深色背景下有点看不清楚。

做了如下修改

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/skyblue"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:paddingLeft="@dimen/forty_dp"
    android:paddingRight="@dimen/forty_dp"
    android:paddingTop="@dimen/one_hundred_twenty_dp"
    tools:context="com.example.administered.swiperefreshlayouttest.view.activitys.MainActivity">

    <!--改变TextInputLayout默认下划线颜色和点击时颜色,默认hint颜色
           在TextInputLayout控件设置textColorHint设置默认hint颜色
           在EditText控件中设置android:theme属性设置 style
       -->
    <android.support.design.widget.TextInputLayout
        android:id="@+id/login_textinput_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColorHint="@color/mintcream">
        <!--android:textColorHint="@color/blue" 默认hint字体颜色-->
        <EditText
            android:id="@+id/login_userId"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入账号"
            android:inputType="number"
            android:maxLines="1"
            android:singleLine="true"
            android:textColor="@color/darkorange"
            android:theme="@style/TextAppTheme" />
        <!--textColor设置输入时字体颜色-->
        <!--inputTypu设置输入框输入类型-->

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/login_textinput_pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/login_textinput_id"
        android:layout_marginTop="@dimen/five_dp"
        android:textColorHint="@color/mintcream">

        <EditText
            android:id="@+id/login_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入密码"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true"
            android:textColor="@color/darkorange"
            android:theme="@style/TextAppTheme" />

    </android.support.design.widget.TextInputLayout>


    <Button
        android:id="@+id/sign_in_button"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/login_textinput_pwd"
        android:layout_marginTop="@dimen/twenty_dp"
        android:background="@drawable/btn_nor_up"
        android:text="登录"
        android:textStyle="bold" />

</LinearLayout>

修改的代码我做了注释,TextAppTheme.style代码如下

<!--改变TextInputLayout 里面的EditText默认下划线和点击时下划线的颜色-->
    <style name="TextAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorControlNormal">@color/chartreuse</item><!--默认显示下划线的颜色-->
        <item name="colorControlActivated">@color/orangered</item><!--点击后下划线的颜色-->
        <item name="colorAccent">@color/ivory</item>
    </style>

效果如下

其实就是修改了一些样式而已,它的其他的一些属性,暂时还没发掘出来。还需要学习

TextInputLayout与TextInputEditText详解 导读:Android 从5.0版本开始,新增了Android Materia Design库,让开发者高效的实现炫酷的UI效果本篇文章将介绍Materia Design库的TextInputLayout与TextInputEditText组件TextInputLayout TextInputLayout用于辅助EditText,当用户输入文本时,在EditText上方显示浮动标签,这个标签的内容就是 阅读详情

相关推荐

【Android -- UI 开发】TextInputLayout 的基本使用

TextInputLayout 主要是作为 TextInputEditText 的容器,从而为 TextInputEditText 生成一个浮动的 Label,当用户点击 TextInputEditText 的时候,TextInputEditText 中的 hint 字符串会自动移到 TextInputEditText 的左上角。

Kevin Learn Android 1248

Android开发——Material Design系列之TextInputLayout

0. 前言 TextInputLayout 继承于 LinearLayout,专门用来包裹 EditText或EditText的子类,当用户进行输入动作的时候我们设置的android:hint 属性值会作为提示以动画的形式运动到输入框左上角,错误信息也显示在输入框的下方。有些输入验证是在后台做得,产生错误后再反馈给前台,这样非常耗时而且用户体验差。TextInputLayout则完美的解决了这个...

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 2427

Android 之 控件 - TextInputLayout

本文介绍了Android Material Design组件TextInputLayout的核心功能与使用技巧。主要内容包括:1) 基础配置,需在build.gradle添加依赖并用TextInputLayout包裹EditText;2) 核心功能实现,如浮动标签动画、错误提示、字符计数和密码可见性切换;3) 样式自定义方法,包括修改提示文字颜色、应用自定义字体和全局主题调整;4) 登录表单实战示例;5) 注意事项,如内存泄漏处理和输入类型匹配。该组件能显著提升表单交互体验,建议优先使用TextInputE

早日成为鹏总 541

安卓TextinputLayout使用方法

在这个页面中直接找到design这个依赖,点击后再点击这两个窗口上的OK按钮,等待编译完成就完成导入了!(可能版本不一样,导入即可)TextinputLayout在Design下,可以配合EditText或者EditText的子类使用,通常可以用来提示错误信息,或者显示提示字数限制等一些操作,还可以用来做密码框密码显示!这些使用,只需要在属于TextinputLayout的标签内加入相应的属性设置对应的事件即可,先来看下最简单的效果当在这个文本框输入信息的时候,提示文字会自动向上移动;

onghaha的博客 1183

Android TextInputLayout 原理与生产级实践指南

TextInputLayout 是 Android 中实现语义化、可访问、响应式文本输入的核心组件,其本质是 Material Design 3 规范下对输入状态管理的抽象封装。它通过 TextInputEditText 与 TextInputLayout 的协同机制,统一处理浮动标签动画、错误反馈、焦点响应、辅助文本联动及动态主题适配等关键能力。相比传统 EditText,它将 UI 行为(如 hint 上浮、边框变色)与业务逻辑解耦,天然支持深色模式、无障碍服务和 Material You 动态配色。在

weixin_33928137的博客 390

微生物测序分析LEfSe

LEfse分析定义 LEfse分析即LDA Effect Size分析,可以实现多个分组之间的比较,还进行分组比较的内部进行亚组比较分析,从而找到组间在丰度上有显著差异的物种(即biomaker);

宁生信 5万+

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

这里出现了一个mCollapsingTextHelper,通过它可以设置文字大小的加速动画,FAST_OUT_SLOW_IN_INTERPOLATOR,快出慢进的效果,还有设置位置的加速器setPositionInterpolator,setCollapsedTextGravity设置折叠文字的Gravity,看来这个mCollapsingTextHelper的作用还是很强大的,我们后面再看它的源码,先继续往下看。说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看。

m0_56146626的博客 1467

Android-音频配置文件详解

前言:   Android P 引入了一种新的音频政策配置文件格式 (XML),用于描述音频拓扑。新的 XML 文件支持定义输出输入流配置文件、可用于播放和捕获的设备以及音频属性的数量和类型。但是每个项目的代码里面都有很多音频配置文件,具体使用的是哪个文件呢?本文将详细讲述。 1. 查看运行时具体使用的xml adb shell dumpsys media.audio_policy | grep -iE "Config source:" 结果如下: Config source: /vendor

cheriyou_的博客 3944

TextInputLayout的基本使用

TextInputLayout属于EditText的一个浮动标签,属于Material Design 设计规范中的,效果可以看下面的动图 账号:只是普通EditText 密码:用TextInputLayout包裹的EditText 使用的话TextInputLayout包裹一个EditText就可以。当然TextInputLayout也只能包裹EditText: <android.support.design.widget.TextInputLayout android:id=.

qq_35698774的博客 3419

linux下autocad完美替代品bricscad的安装运行

前言 在Linux平台下,能完美兼容.dwg文件的软件并不多。 虽然国产的中望和浩辰为适配uos操作系统,近期都推出了linux版本,但目前好像还没有对应的破姐流出。(如果有的话请私信我或留下评论) 然而有了这一款源自比利时的软件——bricscad,linux下查看和编辑.dwg文件再也不是噩梦了! 安装pj 资源链接:https://pan.baidu.com/s/1dC7zarlqwuO5fa4CBL_KGQ 提取码:24j6 1.下载对应的压缩包,解压并安装其中对应的deb或rpm软件包。 2.在C

weixin_35259117的博客 4478

若依(RuoYi)框架从零到部署:Spring Boot+Vue权限系统完整配置指南

在Java企业级应用开发中,Spring Boot作为构建微服务和单体应用的基石,极大地简化了项目初始化和配置流程。其核心原理在于通过自动配置和起步依赖,快速整合数据访问、安全认证、缓存等常用模块,显著提升开发效率。这一技术价值在需要快速构建后台管理系统的场景中尤为突出,例如权限管理、用户角色分配等通用需求。若依(RuoYi)框架正是基于Spring Boot和Vue.js的优秀实践,它封装了RBAC权限模型、代码生成器等高频功能,提供了开箱即用的解决方案。本文聚焦于若依框架的【环境配置】与【项目部署】,通

weixin_33984032的博客 455

TextInputLayout 的使用以及style 样式简化代码的编写和后续的修改与维护

一:TextInputLayout 的使用布局: &lt;!--依赖com.android.support:design.XXXX--   注TextInputLayout 里面只能放一个控件&gt;    &lt;android.support.design.widget.TextInputLayout        android:id="@+id/phoneLayoutId"        ...

lcj_zhengjiubukaixin的博客 1327

【项目分享】RailTracker: 火车票务数据采集与分析

从12306使用爬虫爬取火车站及车次信息、火车票价 通过本项目,我们将带领访问者手把手完成火车票数据采集、数据清洗、数据集成、可视化的一整个流程!

zhushatong的博客 3343

TextinputLayout的使用

1.在Design包中还有个TextInputEditText,这个的效果和EditText的效果是相同的。 进行修改TextView中的字体的样式: 首先在assets资源文件中的添加字体: 然后设置Typeface属性: AssetManager assets=this.getAssets(); String path="font/hwcy.TTF"; Typeface fromAsset=...

yuezheyue123的博客 247

二、声明式 Pipeline 语法

选择型参数,一般用于给定几个可选的值,然后选择其中一个进行赋值,例如:parameters { choice(name: ‘CHOICES’, choices: [‘one’, ‘two’, ‘three’], description: ‘’) },表示定义一个名为 CHOICES 的变量,可选的值为 one、two、three;默认情况下,如果定义了某个 stage 的 agent,在进入该 stage 的 agent 后,该 stage 的 when条件才会被评估,但是可以通过一些选项更改此选项。

Cyan_Jiang的博客 1220

Ubuntu20.04下SRS流媒体服务器的安装与开机自启动优化指南

本文详细介绍了在Ubuntu20.04系统下安装SRS流媒体服务器并优化开机自启动的完整指南。从基础环境准备、服务管理方案对比到systemd自启动深度优化,提供了实用的配置技巧和排查方法,帮助用户快速搭建稳定的流媒体服务环境。特别推荐使用systemd方案实现高效的自启动管理。

weixin_29313239的博客 410

TextInputLayout 的主题颜色修改

关于TextInputLayout 类的问题,在androidx 里面是不带这个类型的,需要导入依赖 implementation 'com.google.android.material:material:1.0.0'

chenluming210的博客 1246

MCAL知识点(十):ERU驱动配置详解

ERS:外部请求单元ETL:中断逻辑单元OGU:输出逻辑单元MCU里面配置要使用的功能和选择输入的管脚,注意上述模块关注点讲述的ERU必须和边沿检测模块相关联。

梦想技术家 1221

TextInputLayout 样式设置

修改样式 取消动画 可以通过TextInputLayout对象,执行setHintAnimationEnabled(boolean enabled)方法 // false 关闭动画 true 开启动画 mTextInputLayout.setHintAnimationEnabled(false);12 或者在xml里添加hintAnimationEnabled属性设

lh0304123457的博客 8253

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Material Design风格文本输入样式TextInputLayout的使用

TextInputLayout介绍TextInputLayout是Google基于Material Design风格出现的一个文本输入布局。主要特点在样式上,官方第一句介绍是当输入的文本显示或者隐藏的时候,EditText显示浮动标签的布局。先看看样式样式其实是有动画效果的 使用方法引入包环境由于这个控件在这个android.support.design.widget包下,所以要查看是否已经引

开飞机的舒克 2102

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TextInputLayout使用详解

TextInputLayout 基础样式、错误提示、字数限制等等效果图: 布局文件 <android.support.design.widget.TextInputLayout android:id="@+id/til_name" android:layout_width="0dp" android:layout_height="wrap_c

yechaoa 3395

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android Material 常用组件详解(二)—— TextInputLayout 使用详解

介绍 TextInputLayout 主要是作为 EditText 的容器,从而为 EditText 生成一个浮动的 Label,当用户点击 EditText 的时候,EditText 中的 hint 字符串会自动移到 EditText 的左上角。 TextInputLayout 使用详解 1、基本使用 布局文件中只需要在 EditText 外层包裹一层 TextInputLayout 布局即可 <com.google.android.material.textfield.TextInputLayo

weixin_42046829的博客 2782

TextInputLayout下划线暗色修改

加粗样式 ** <style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance"> <item name="colorControlNormal">#000000</item> <item name="colorControlActivated">#000000</item> <ite

baidu_39285054的博客 592

Android 中 TextinputLayout 的用法

TextinputLayout 是 Android 5.0 之后才出现的东西,虽然现在应用的不是特别多,但效果真的很赞!在此记录一下 TextinputLayout 的一些用法

nenguou04的博客 1717

TextInputLayout

TextInputLayout1添加下面的依赖两个库,一个是appcompat-v7,保证material styles可以向下兼容。另一个是Design Support Library。  compile 'com.android.support:design:27.1.1' compile 'com.android.support:appcompat-v7:22.2.0'2.使用TextIn...

dianziagen的博客 509

TextInputLayout使用以及自定义颜色

继CoordinatorLayout之后,继续研究 material design 的相关控件TextInputLayout,下面是效果图: 1.gradle 配置 compile ‘com.android.support:design:22.2.0’ compile ‘com.android.support:appcompat-v7:22.2.0’ 2.xml private android.

android_小路的博客 1万+
上一篇: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForBaiduDebug'
下一篇: SwipeRefreshLayout嵌套RecyclerView实现上下拉刷新
I_have_to_believe
博客等级 码龄9年 22粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值