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

TextInputLayout-Android M新控件

但是Theme.AppCompat 并没有实现谷歌官方应用中用到的每个material组建。其中一个重要的特性就是AppCompat theme没有提供一个显示在EditText上方的浮动标签。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...一个单一的EditText 在输入文字的时候会隐藏hint,而被包含在TextInputLayout中的EditText则会让hint变成一个在EditText上方的浮动标签。...但是没有material动画也没有浮动标签,需要设置hint, 但是经验证,不设置,只要在xml中设置了 android:hint也是可以达到效果的。...setErrorEnabled开启错误提醒功能。这直接影响到布局的大小,增加底部padding为错误标签让出空间。在setError设置错误消息之前开启这个功能意味着在显示错误的时候布局不会变化。

77920

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

说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看 mCollapsingTextHelper.setTextSizeInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR...,还有hintAppearance的值,mErrorTextAppearance是错误提示文字的样式,errorEnabled是否开启错误提示 setErrorEnabled(errorEnabled)...,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin(ViewGroup.LayoutParams...之中肯定应该会有一个添加错误提示信息的方法,在这里我们找到了,同时这里的代码也是值得我们进行学习的,只有当用户设置错误提示为真的时候,才会new一个TextView,这样是比较省性能的,接下来是setError...,同时new了一个TextPaint来进行文本的绘制,然后是new出来3个矩形区域,mCollapsedBounds:输入框处于折叠状态下的矩形区域,mExpandedBounds:提示框获得焦点,提示文字向上展开的矩形区域

1.8K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    如果我们想写一个登陆界面是不是一般都写两组TextView,EditText及一个Button,不过体验并不是太好,等等这些麻烦的的处理在Material Design TextInputLayout...它显示了一个欢迎标签(如果有的话,可以很容易地用徽标替换)和两个EditText元素,一个用于用户名,另一个用于密码。布局还包括一个触发登录序列的按钮。背景颜色是漂亮,平坦,浅灰色。...setError 设置将显示在下方的红色错误消息EditText。如果传递的参数是null,则清除错误消息。它还将整个EditText小部件的颜色更改为红色。...setErrorEnabled 启用错误功能。这直接影响布局的大小,增加较低的填充以为错误标签腾出空间。在设置错误消息之前启用此功能setError 意味着在显示错误时此布局不会更改大小。...每个小部件的颜色都直接从style.xml文件中指定的主题颜色中绘制 。只需打开它并将colorAccent项目添加到活动主题即可更改表单的颜色方案。

    1.4K20

    Material Design整理(一)——TextInputLayout

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

    50430

    Android之MaterialDesign应用技术2-仿支付宝上滑搜索框缓慢消失

    这里可以看出我在ImageView中加入了高度180dp,这里是一定要加上的,否侧toolbar的会出现以下几种错误,1:文字不显示。2:只显示标题栏。3:图片过大充满整个屏幕。...,代码少,效果好正是该库的强大,在Activity中的使用基本和上一篇是一样的。...toast就关掉了,而且具体哪一行错误也没有标红,这就很尴尬了,那么今天这个控件也是一个输入框,但是外层加一个布局(TextInputLayout),就可以达到精确到一行提示具体错误。...这时候TextInputLayout则是显示错误,TextInputLayout是LinearLayout的子类,用于辅助显示提示信息。...上,在Activity中获取也是获取的layout,那么怎么获取edittext输入的数据呢,有方法的。

    1.6K100

    再不迁移到Material Design Components 就out啦

    但是,升级后,您可能会注意到某些控件颜色和其他属性的某些意外更改。 ? 在上面的示例中,按钮发生了变化、文本和图标的颜色发生了变化。FAB 现在变成了蓝绿色,并且文本字段看起来完全不同。不用担心。...要恢复为旧的文本字段可以在布局中添加样式 android.material.textfield.TextInputLayout ... + style="@style...由于MDC-Android,AppCompat和框架之间共享历史记录,因此,颜色属性集包括以下内容: 框架中已适当命名的现有属性(例如android:colorBackground) AppCompat...要了解哪些小部件使用哪种颜色,需要检查源代码中的默认小部件样式。 AppCompat和框架中还存在一些颜色,但不再适用于此新系统。该Theme.MaterialComponents....如果确实需要的话,最好用 android:background 例子 在我们的示例中我们可以删除一些由 shape theming 来处理的属性。

    3.2K30

    Android开发笔记(一百三十八)文本输入布局TextInputLayout

    文本输入布局TextInputLayout TextInputLayout是MaterialDesign库中对编辑框EditText进行增强的一个控件。...; 2、编辑框所在页面的Activity需要继承自AppCompatActivity,否则运行时打开页面会报错; 3、布局文件中在TextInputLayout节点下面加入EditText控件,必须并且只能加入一个...setHintAnimationEnabled : 设置提示文字的展示动画是否可用。 setError : 设置错误文字的内容。 setErrorEnabled : 设置错误文字是否可用。...从以上方法可以看到,TextInputLayout增加的界面元素主要是三个,分别是位于编辑框左上角的提示文字、位于编辑框左下角的错误文字、位于编辑框右下角的文字计数器。...这个好坑,既然出现问题,就想办法解决它,解决办法如下所示(以下方案任选其一): 1、在布局文件中给EditText控件设置maxLength属性,指定允许输入字符串的最大长度。

    2K30

    Android Material Design系列之主题样式介绍说明等

    这个也只能在API21以上才能用各控制元件的预设颜色和colorAccent正好对应 在Style上设置 以上的颜色属性均是在 style 的属性中设置。...里面可以包含一个且只能有一个EditText,与传统的EditText不同,在输入时EditText的hint提示文字会滑到上方,在用户输入的同时提示用户当前要输入的是什么,同时还可以设置输入错误的提示信息...TextInputLayout常用的方法有如下: setHint():设置提示语。 getEditText():得到TextInputLayout中的EditView控件。...特别注意:TextInputLayout不能单独使用,必须包裹EditView组件,且只能一个,设置错误提示信息时一定要先setErrorEnabled(true);再设置setError()。...,可以在右侧显示出错误信息的小弹窗提示。

    1.2K70

    安卓软件开发:用Java和Kotlin构建MDC-UI框架实现LoginUI(基础)

    文件中,使用MDC的TextInputLayout和TextInputEditText创建用户名和密码输入的字段: android.material.textfield.TextInputLayout...主要功能是错误反馈,代码业务逻辑实现错误提示,设置密码字段类型为“textPassword”: android.material.textfield.TextInputLayout...可以使用 ViewModel 保存用户输入的状态,在 Fragment 之间共享数据。 3.3 输入验证与用户体验 难点:实现用户输入验证时,需要保证错误提示的实时性和准确性。...解决方法:通过 setOnKeyListener 实时监听用户输入,结合 MDC 的错误提示功能 (errorEnabled) 动态更新错误状态。...四、学习笔记 在开发过程中,积累了MDC框架技术的学习心得: 4.1.Material Components (MDC) 深入学习了MDC组件如TextInputLayout、MaterialButton

    449101

    实现一个带浮动标签的输入框

    现在带浮动标签的输入框也是一个很常见的东西了,在材料设计里面有一个 TextInputLayout 的控件,我们可以用它实现这个效果。但是材料设计控件的样式比较固定,并不能满足我们产品设计的脑洞。...这里提供一个用属性动画实现的方法。 还是先看看效果吧: image.png 大概的思路是这样的: 控件有两层,一层是浮动的标签,一层是输入框。...当点击控件后,标签同时执行一个横向和纵向的缩放动画,还有一个向上移动的动画,让输入框获取到焦点并弹出键盘。 当输入框失去焦点时,判断是否有内容,如果没有则让标签执行一个复原的动画。...所以在布局里面用 android:transformPivotX="0dp" android:transformPivotY="-30dp" 复制代码 将标签的基准点设为 (0dp, -30dp),这样我们就省去了移动动画...TextUtils.isEmpty(etContent.getText())) { animationDown(); } } }); 复制代码 这样就已经完成了一个带浮动标签的输入框

    1.3K10

    【Flutter 专题】65 图解基本 TextField 文本输入框 (二)

    // 文本框默认提示信息样式 this.hintMaxLines, // 文本框默认提示信息最大行数 this.errorText, // 文本框错误提示信息...this.errorStyle, // 文本框错误提示信息样式 this.errorMaxLines, // 文本框错误提示信息最大行数...helperText 为文本框辅助标签,一般在文本框底部,提示性内容;helperStyle 为文本框辅助标签样式属性;与 TextField 是否获取焦点无变化; return TextField(decoration...errorText 为文本框错误提示信息,一般在文本框底部,当设置 errorText 时不展示 helperText,整体默认为红色;errorStyle 为错误提示信息样式属性;errorMaxLines...小扩展 在实际开发中,可能会随时需要关闭键盘,此时我们仅需监听一下即可;和尚监听一个文本输入框,当输入字符长度大于 11 位时即收起键盘; return TextField(controller

    4.7K41

    Android 低功耗蓝牙开发 (扫描过滤、自定义服务与特性)Kotlin版

    ,同时我们把底部浮动按钮的文字改一下,改成开始扫描,这就补贴图说明了,直接在activity_main.xml中改动就可以了。...首先在colors.xml中增加一个颜色,是分割线的颜色 #EEEcolor> 然后通过drawable绘制一个顶部左右圆角的背景,在drawable下新建一个shape_white_top_radius...,目前来说只有一个上下文,然后我们在AndroidManifest.xml中的application标签中去配置一下。...,如果没有就设置为100,在扩展函数中我设置的缺省值是0,你也可以设置为100,则使用的地方就不需要增加这个默认参数了。...④ UUID检查   在之前的代码中,是扫描到设备后点击设备进入另一个页面中进行数据的交互,此时就会涉及到uuid,之前的uuid是写死的,不需要考虑这个问题,而现在uuid是动态设置的,因此在你没有设置

    1.2K10

    Android 低功耗蓝牙开发 (扫描过滤、自定义服务与特性)Kotlin版

    ,同时我们把底部浮动按钮的文字改一下,改成开始扫描,这就补贴图说明了,直接在activity_main.xml中改动就可以了。...首先在colors.xml中增加一个颜色,是分割线的颜色 #EEEcolor> 然后通过drawable绘制一个顶部左右圆角的背景,在drawable下新建一个shape_white_top_radius...,目前来说只有一个上下文,然后我们在AndroidManifest.xml中的application标签中去配置一下。...,如果没有就设置为100,在扩展函数中我设置的缺省值是0,你也可以设置为100,则使用的地方就不需要增加这个默认参数了。...④ UUID检查   在之前的代码中,是扫描到设备后点击设备进入另一个页面中进行数据的交互,此时就会涉及到uuid,之前的uuid是写死的,不需要考虑这个问题,而现在uuid是动态设置的,因此在你没有设置

    1.3K30

    QT从控件部分知识点整理

    QT中的工具栏和菜单栏 QMainWindow 菜单栏创建演示: 工具栏创建演示: 状态栏创建演示: 铆接部件(浮动窗口)创建演示: 中心部件创建演示: 资源文件添加 模态和非模态对话框 消息对话框...颜色对话框 文件对话框 字体对话框 QMainWindow 菜单栏在为空的状态下,什么都不会显示 菜单栏创建演示: //菜单栏创建---菜单栏最多只能有一个 QMenuBar*b=...QLabel* label=new QLabel("提示信息",this); //放置在左侧 stBar->addWidget(label); QLabel...* label2=new QLabel("右侧提示信息",this); //放置在右侧 stBar->addPermanentWidget(label2); 铆接部件(浮动窗口)创建演示...: 放置区域的参数: //铆接部件(浮动窗口)可以有多个 QDockWidget* dockWidget=new QDockWidget("浮动",this); //停靠在核心部件下部

    1.1K20

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

    Android 系统样式中的颜色属性 推荐阅读看完后彻底搞清楚Android中的 Attr 、 Style 、Theme 几个常用的颜色属性 先放上一张经典的图片,图片来自网络。 ?...在开发者官网 R.attr 中给我们列出了所有的系统属性,我们可以在这里面找到对应的颜色属性所代表的意思。...状态 EditText:获取焦点的时候的下划线和光标颜色 TextInputLayout:悬浮 label 字体颜色 等等 android:navigationBarColor navigation...bar 的背景色,仅用于 Android 5.0及其以上 colorControlNormal 某些 View 处于普通状态下的颜色。...但是不包括 TextView 中的文字颜色,TextView 中的文字颜色还需要 TextColor 来控制。 当然在设置了 TextColor 的话,TextColor 优先。

    1.9K10

    TextInputLayout的使用与实现

    TextInputLayout的使用 在Gradle的依赖中添加上com.android.support:design:23.0.0,其中23版本根据编译的android版本来调整对应版本即可 ?...Layout配置文件 TextInputLayout效果 在两个输入框切换点击切换的时候,EditText中的文本会有动画的方式飞向左上角。 ?...TextInputLayout效果 TextInputLayout动画实现原理 原本以为在点击输入框的时候,会是在EditText的Focus改变的时候,开始执行动画,结果发现是在整个TextInputLayout...animateToExpansionFraction CollapsingTextHelper在这个类中,保存了当前Animation执行的到的状态,比如说当前绘制的hint文案的位置(x,y),画笔的位置和颜色...TextInputLayout.onLayout 在TextInputLayout中的draw中,会根据onLayout中计算出的CollapsingTextHelper矩形位置以及缩放大小开始绘制文字

    1.2K40

    Android MVVM框架搭建(一)ViewModel + LiveData + DataBinding

    ViewModel 类让数据可在发生屏幕旋转等配置更改后继续留存。DataBinding数据绑定库是一种支持库,借助该库,您可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源。...然后我们的数据是需要显示在页面上的,而之前是通过Activity获取xml中的控件,然后显示数据在控件上,而现在有了DataBinding,可以直接和xml的中数据进行绑定,这看起来和JS比较像。..." android:layout_height="wrap_content"/> LinearLayout> layout> 这里我在最外层加了一个layout标签,然后将原来的布局放在...上图的代码就是通过更改数据然后通知到xml做更改,初始化的修改时admin、123456。然后再通过输入框去修改。...之前在activity_main.xml中的data标签中是使用的User,现在我们改成ViewModel,顺便把布局调整一下,代码如下: android="http://schemas.android.com

    17K97
    领券