TextInputLayout便是用来解决提示文字的显示问题,它默认把提示文字显示在编辑框的上方,这样在编辑框内输入文字,就不影响上方的提示文字了。...; 2、编辑框所在页面的Activity需要继承自AppCompatActivity,否则运行时打开页面会报错; 3、布局文件中在TextInputLayout节点下面加入EditText控件,必须并且只能加入一个...这个好坑,既然出现问题,就想办法解决它,解决办法如下所示(以下方案任选其一): 1、在布局文件中给EditText控件设置maxLength属性,指定允许输入字符串的最大长度。...该方法同样也不会限制输入的字符个数。...如果不用TextInputLayout,只使用EditText的话,横屏时的编辑框也会显示提示文字;可是一旦加了TextInputLayout,再看横屏的编辑框,发现编辑框内的提示文字不见了,这是因为TextInputLayout
但是Theme.AppCompat 并没有实现谷歌官方应用中用到的每个material组建。其中一个重要的特性就是AppCompat theme没有提供一个显示在EditText上方的浮动标签。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...一个单一的EditText 在输入文字的时候会隐藏hint,而被包含在TextInputLayout中的EditText则会让hint变成一个在EditText上方的浮动标签。...需要的方法是setErrorEnabled和setError。 setError设置一个红色的错误消息,显示在EditText的下面。如果传入的参数为null,错误消息将清空。...在setError设置错误消息之前开启这个功能意味着在显示错误的时候布局不会变化。你可以把这两个方法结合起来验证下我所说的。
如果我们想写一个登陆界面是不是一般都写两组TextView,EditText及一个Button,不过体验并不是太好,等等这些麻烦的的处理在Material Design TextInputLayout...它显示了一个欢迎标签(如果有的话,可以很容易地用徽标替换)和两个EditText元素,一个用于用户名,另一个用于密码。布局还包括一个触发登录序列的按钮。背景颜色是漂亮,平坦,浅灰色。...---- 显示错误 TextInputLayout 错误处理简单快捷。所需的方法是 setErrorEnabled和setError。...setError 设置将显示在下方的红色错误消息EditText。如果传递的参数是null,则清除错误消息。它还将整个EditText小部件的颜色更改为红色。...这直接影响布局的大小,增加较低的填充以为错误标签腾出空间。在设置错误消息之前启用此功能setError 意味着在显示错误时此布局不会更改大小。
密码的显示和隐藏是一个很常见的小知识点,主要包括2个部分:小图标的变化和EditText输入密码的显示和隐藏 小图标的变化 小图标的变化一般也有2种实现方式: (1)ImageView或ImageButton...这种方式需要声明一个全局的布尔型变量作为标志位,记录当前是显示密码还是隐藏密码 实现步骤: 首先当然是布局中添加了ImageView或ImageButton 然后在代码中设置点击监听,根据标志位在代码中动态的替换图片...,改变EditText的显示状态 (2)ToggleButton 这种方式需要写一个selector文件,根据state_checked值设置不同的图片 实现步骤: 首先布局中添加ToggleButton...onCheckedChanged方法,在这个方法里可以改变EditText的显示状态 EditText输入内容的显示和隐藏 也有2种方式可以实现:修改TransformationMethod和动态修改...edtPassword.setTransformationMethod(PasswordTransformationMethod.getInstance()); (2)修改InputType 这种方式有个问题就是密码的显示隐藏状态改变时字间距会变化
这个也只能在API21以上才能用各控制元件的预设颜色和colorAccent正好对应 在Style上设置 以上的颜色属性均是在 style 的属性中设置。...里面可以包含一个且只能有一个EditText,与传统的EditText不同,在输入时EditText的hint提示文字会滑到上方,在用户输入的同时提示用户当前要输入的是什么,同时还可以设置输入错误的提示信息...setErrorEnabled():设置是否可以显示错误信息。 setError():设置当用户输入错误时弹出的错误信息。...,可以在右侧显示出错误信息的小弹窗提示。...这个系列可能有些基础,但是众口难调还请大家理解,会的同学可以略过,不会的就好好学习。总之,都是为了大家更进一步。重口难调,还请大家理解。
()用于给textInputLayout包裹的EditText设置内容变化监听,我们可以自己重写一个监听实现里面的方法进行相关逻辑的处理 效果如下: TextInputLayout源码分析 TextInputLayout...说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看 mCollapsingTextHelper.setTextSizeInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR...的addView方法,如果不是EditText,也调用父类的addView方法,查看setEditText方法 内部 private void setEditText(EditText editText...设置文本变化的监听,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin...calculateBaseOffsets()方法,用于计算基本的偏移量,注意注释的内容:在计算折叠状态下的文字大小,也使用同样的逻辑 final int collapsedAbsGravity = GravityCompat.getAbsoluteGravity
这里可以看出我在ImageView中加入了高度180dp,这里是一定要加上的,否侧toolbar的会出现以下几种错误,1:文字不显示。2:只显示标题栏。3:图片过大充满整个屏幕。...TextInputLayout是22.2.0新添加的控件, 要和EditText(或EditText的子类)结合使用,并且只能包含一个EditText(或EditText的子类)。...这时候TextInputLayout则是显示错误,TextInputLayout是LinearLayout的子类,用于辅助显示提示信息。...当EditText获取得光标的时候,EditText的hint会自己显示在上方,并且有动画过渡。 ?...> 这里要注意的是Id是加在 TextInputLayout上,在Activity中获取也是获取的layout,那么怎么获取edittext输入的数据呢,有方法的。
github地址:https://github.com/shuaijia/MaterialDesignProject 添加依赖 TextInputLayout是在Material Design中的,如果我们要使用的话...,必须在gradle文件中配置 开始使用 TextInputLayout是一种新的继承自LinearLayout的布局,使用时其只能包含一个EditText或其子类控件(如AutoCompleteTextView...) 还可通过设置hint和error来显示浮动标签 注意:一个TextInputLayout中 有且只有 一个EditText!...举例 浮动标签 字数统计 错误提示 密码框右侧图标 虚拟键盘监听 有时候我们在用虚拟键盘的时候,在输入账号之后,我们点击下一项,焦点会跑到输入密码这一栏,当我们密码输入完成之后,点击确定按钮就能登录了...账号EditText中 密码EditText中 AutoCompleteTextView –自动提示输入框 继承自EditText,拥有EditText的所有属性,可以设置在输入时自动在输入框下方提示信息
gradle配置文件 在对应的Layout文件中使用TextInputLayout将EditText控件包裹,并且在EditText中设置hint属性即可,在这个父ViewGroup中,只能有一个EditText...Layout配置文件 TextInputLayout效果 在两个输入框切换点击切换的时候,EditText中的文本会有动画的方式飞向左上角。 ?...TextInputLayout效果 TextInputLayout动画实现原理 原本以为在点击输入框的时候,会是在EditText的Focus改变的时候,开始执行动画,结果发现是在整个TextInputLayout...setExpansionFraction 而在TextInputLayout中的onLayout中,会计算出EditText的位置,并且更新CollapsingTextHelper中矩形的位置 ?...TextInputLayout.onLayout 在TextInputLayout中的draw中,会根据onLayout中计算出的CollapsingTextHelper矩形位置以及缩放大小开始绘制文字
有时候,一个列表中的Item会有EditText的出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...菜是原罪 EditText在RecyclerView中的问题 例子是这样的,每个Item包含一个title、一张图片以及一个评分,这个评分就是通过输入框来输入的。...先看下效果如下: 这里,每张图片输入图片title对应的分数,可以看到,由于未绑定数据和RecyclerView的复用机制的存在,在一些图片中还没输入分数,就已经出现分数了。...原来是因为这里是addTextWatcher,而不是setTextWatcher,也就是在复用的时候,同一个EditText添加了多个TextWatcher,怪不得分数9还能出现在上面了。...TextWatcher始终绑定一个,那就需要在ViewHolder的初始化里面操作,而不是在updateView,因为会多次bind,这就得到了以下关系: 一个ViewHolder——>一个EditText
解决EditText在光标位置插入字符串,光标不会往后挪动的方法 keyStr = String.valueOf(keyCode); // keyBoardEt.setText...--限制EditText只允许单行输入,而且不会滚动--> 设置文字间隔,设置英文字母大写类型 android:textScaleX="1.5" 的地位,在控制控件显示的大小时蛮实用的--> android:cursorVisible="true" 在EditText的左边输出一个drawable--> android:drawablePadding 显示,例如设置以下值: "start"省略号显示在开头, "end"省略号显示在结尾,"middle"省略号显示在中间, "marquee"以跑马灯的方式显示(动画横向移动
零、前言 这是两个比较小的点,放在一起说一下: 沉浸标题栏:现在基本上都用沉浸标题栏了,不然最顶的一小块跟app风格不搭 TextInputLayout:包裹一个EditeText,多用于登陆验证的输入框...TextInputLayout.png TextInputLayout android:id="@+id/til2"...android:layout_width="match_parent" android:layout_height="wrap_content"> EditText...> 其中app:passwordToggleEnabled="true" 显示小眼睛 还有一个点是改变颜色: 可以自己定义一个主题,设置colorAccent的颜色值 ---- 后记、 1.声明: [1]本文由张风捷特烈原创,转载请注明 [2]欢迎广大编程爱好者共同交流 [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 [4]你的喜欢与支持将是我最大的动力
NavigationView处理好了和状态栏的关系,可以确保NavigationView在API21(5.0)设备上正确的和状态栏交互。...会高亮显示在抽屉菜单中,让用户知道哪个菜单被选中。...效果和Code请移步 NavigationDrawer和NavigationView-Android M新控件 ---- 输入框控件的悬浮标签 在material design中,即使是简单的EditText...通常EditText会在用户输入第一个字母后隐藏提示信息,但是现在可以使用TextInputLayout来将EditText封装起来,提示信息(hint)会变成一个显示在EditText之上的floating...TextInputLayout: Layout which wraps an EditText (or descendant) to show a floating label when the hint
1.png 解释 因为使用databinding是双向绑定,所以咱们这里就比较方便的来直接判断变量中的值即可。...因为这里是我自己写的Demo,所以逻辑判断是比较简单的,大家如果使用按照自己的需求网上添加即可。...注册监听 registBind.registerModel = registModel //给xml赋值model类 registModel.btnIsEnable(registModel) //监听EditText...isBtnEnable(isBtnEnable: Boolean) { registBind.registerBtn.isEnabled = isBtnEnable } 好了,到这里databinding监听EditText...的用法就讲完了。
item_editText = helper.getView(R.id.item_editText); // 通过tag判断当前editText是否已经设置监听,有监听的话,移除监听再给...editText赋值 if (item_editText.getTag() instanceof TextWatcher){ item_editText.removeTextChangedListener...((TextWatcher) item_editText.getTag()); } // 必须在判断tag后给editText赋值,否则会数据错乱 item_editText.setText...item.setNum(Integer.valueOf(editable + "")); } } }; // 给item中的editText...设置监听 item_editText.addTextChangedListener(watcher); // 给editText设置tag,以便于判断当前editText是否已经设置监听
现在带浮动标签的输入框也是一个很常见的东西了,在材料设计里面有一个 TextInputLayout 的控件,我们可以用它实现这个效果。但是材料设计控件的样式比较固定,并不能满足我们产品设计的脑洞。...:background="@color/white" android:orientation="vertical" android:paddingLeft="20dp"> EditText...android:transformPivotX="0dp" android:transformPivotY="-30dp" /> 复制代码 由于 EditText...动画执行完后显示EditText,让它获取到焦点并弹出键盘。...所以在布局里面用 android:transformPivotX="0dp" android:transformPivotY="-30dp" 复制代码 将标签的基准点设为 (0dp, -30dp),这样我们就省去了移动动画
然而,计划赶不上变化,开发工作中总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。...当然,在界面展现上,需要以横排方格的形式加以显示。于是可以考虑,把支付密码的输入与显示操作分离开来,即密码输入操作仍由EditText处理,而密码显示操作则由自定义的方格布局接管。...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...,决定当前显示明文还是密文;如果是密文,则显示哪个密文字符; 5、每当EditText里的文本发生变更之时,相应更新TextView队列的各项文本显示; 上述的改造内容,大部分都有可以直接调用的函数,...其次,对于支付密码输入框的焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部的EditText所抢占,使得密码输入框反而不会响应点击和触摸事件
谷歌表示,其用户希望看到完整的故事,而不必单击以查看更多内容。 谷歌宣布将尽量不在Google搜索和Google Discover中显示基于“预告片”的网络故事。...该公司表示,发布生态系统一直在尝试创建丰富的Web Stories的新方法,但是基于所看到的结果,用户不希望在挑逗他们点击以获取完整故事的地方进行挑逗。 什么是网络故事?...它们与Instagram,Facebook Stories和Twitter Fleets基本相同,但显示在Google移动应用的Google Discover标签中: Google的网络故事示例...Google的Paul Bakaus说:“您博客文章的一页或两页预告片并不能给读者带来令人满意的故事,因此Google会竭力不向用户显示这些内容。”...这意味着Google很快将停止在Google搜索和Google D
需要注意的是,TextInputLayout必须包含一个EditText。...在TextInputLayout可以轻松地通过getEditText方法找到它所包裹的EditText。、 在显示错误的时候,需要先设置错误的提示,每次显示的时候都要设置。...判断当前的滚动方向、滚动距离、当前的FloatingActionButton是否显示来进行相应的逻辑处理。...ViewAnimationUtils.createCircularReveal( view, //作用在哪个View上面 centerX, centerY, //扩散的中心点...三种系统带的:滑动效果(Slide)、展开效果Explode、渐变显示隐藏效果Fade。
在开发者官网 R.attr 中给我们列出了所有的系统属性,我们可以在这里面找到对应的颜色属性所代表的意思。...状态 EditText:获取焦点的时候的下划线和光标颜色 TextInputLayout:悬浮 label 字体颜色 等等 android:navigationBarColor navigation...比如: 没有被选中的 CheckBox 或者没有被选中的 RadioButton 失去焦点时的 EditText ,Toolbar 溢出按钮颜色 等等 colorControlActivated 在某些时候...,比如 actionbar 文本的颜色,比如 Button 中的文本颜色,EditText 中的文本颜色,AlertDialog 中的文本颜色。...,那么显示效果就会是这样的 ?
领取专属 10元无门槛券
手把手带您无忧上云