TextInputLayout自带的那个眼睛点击后是只能加深背景颜色,老板看了觉得不满意就让我修改 OTZ,但是我又不想放弃TextInputLayout显示文字的酷炫效果,所以就有了下文。
(1)用自己的眼睛图标替换系统的

于是我百度了一下如何隐藏TextInputLayout眼睛图标,于是看到了这个属性
TextInputLayout设置眼睛图标不显示app:passwordToggleEnabled=”false”,然后加上自己的样式实现了这个效果。

实现方式如下
XML代码
<android.support.design.widget.TextInputLayout
android:id="@+id/passwordWrapper"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_below="@id/usernameWrapper"
app:passwordToggleEnabled="false">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:textSize="14sp"
android:inputType="numberPassword"/>
</android.support.design.widget.TextInputLayout>
<CheckBox
android:id="@+id/showpassword"
android:checked="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="center_vertical"
android:button="@drawable/show_password"/>

show_password样式
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/show" android:state_checked="true"/>
<item android:drawable="@drawable/conceal" android:state_checked="false"/>
</selector>

Activity代码

/**
* 显示或者隐藏密码
*/
showpassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
passwordWrapper.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
}else {
passwordWrapper.getEditText().
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
});

这样就实现了想要的效果,但是两个edittext的宽度不一样感觉不好看,APP里还有几个需要修改,重复的代码要复制好几份,所以我就想看下TextInputLayout里的属性看能不能修改下眼睛图标的样式,于是就被我找到了这货app:passwordToggleDrawable=”@drawable/show_password”,它是用来替换眼睛图标的样式的,于是加上自己的样式再稍微修改了下图标的大小就实现了下面的效果完美贴合edittext。

(2)解决眼睛图标不显示的问题
最近发现眼睛图标突然消失不见了,以为是系统问题,结果用不同产商的手机测试了还真是系统问题,猜想可能是被自动隐藏了,解决办法也挺简单在TextInputLayout 控件的xml代码中加入以下属性,手动将眼睛图标显示出来。

app:passwordToggleEnabled=”true”

 总结:以后遇到问题之前先去尝试自己解决,不要直接百度去找答案,也许这个问题其实并没有那么难!

Android materialdesign TextInputLayout替换眼睛图标和解决眼睛图标不显示的问题相关推荐

  1. windows重建图标缓存(解决快捷方式图标丢失,图标加载时间长问题)

    windows重建图标缓存(解决快捷方式图标丢失,图标加载时间长问题) 参考文章: (1)windows重建图标缓存(解决快捷方式图标丢失,图标加载时间长问题) (2)https://www.cnbl ...

  2. 计算机旁边快速访问没有桌面图标了怎么办,桌面找不到我的电脑(计算机)图标的解决办法-win10桌面显示我的电脑...

    最近发现周围同事电脑上有个怪现象,他们在桌面上找不到我的电脑,于是乎在桌面建了个我的电脑的快捷方式,下面来说一下WIN7.WIN10等.如何把我的电脑放到桌面. 在桌面显示我的电脑(计算机)的方法 W ...

  3. win10桌面图标消失解决+软件快捷方式重建+显示所有电脑应用

    电脑桌面总是放着最重要的几个图标,总是会因为各种各样的原因突然消失. 基础图标 找回 计算机 回收站 用户的文件 控制面板 网络 在桌面->右键->个性化 打开个性化设置面板 在个性化设置 ...

  4. android自定义app图标下载,安卓换图标

    安卓换图标app又叫换图标app,是一款可以快速为安卓手机用户替换手机图标的软件,换图标变得更简单哦!平台上有更多的手机app图标可以选择,也可以自己设置喜欢的图标图片,超级实用,打造个性化桌面,快来 ...

  5. Android Q适配攻略(一)(图标适配)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  6. Android如何安全替换证书

    Android如何安全替换证书 证书过期了?!! V1和V2签名方式 V3签名方式 鸡肋的V3 最后 证书过期了?!! 也不知道当初是那条筋搭错了,将证书的时间弄得这么短,在这里强烈的提醒一下各位,在 ...

  7. android 耳机图标显示图标,一种耳机图标的显示方法及终端与流程

    本发明涉及通信领域,特别是一种耳机图标的显示方法及终端. 背景技术: 目前的手机耳机类型,主要有三类:不带microphone的三段式耳机:带microphone的欧标耳机(也叫国标):带microp ...

  8. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

  9. chrome系浏览器插件:chromoji - 替换默认emoji,解决不显示emoji的问题

    最近抛弃用了十年的firefox,换成了360极速浏览器X.因为最新的firefox已经不能被mactype渲染了.360可以关掉directwrite,字体完美渲染.但是有个副作用,emoji都变成 ...

最新文章

  1. SLAM综述:激光雷达与视觉SLAM
  2. Spring Cloud微服务实战pdf
  3. android端与服务端差别,Android客户端和服务器端编程
  4. python功能代码_整理几个常用的Python功能代码片段【收藏】
  5. debug=true开启自动配置报告
  6. module ‘tensorflow_core.compat.v1‘ has no attribute ‘contrib‘问题的完美解决
  7. 您的apple id 暂时不符合使用此应用程序_Mac相机不工作时该怎么办
  8. 《Effective C#》Item 14:使用构造函数初始化语句
  9. 一张图学会python3高清图-用一张很丑的图学习Python数据可视化基础--热力图
  10. 第21课: JSP语句 if判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  11. 浙江工大学计算机学院保研,浙江工业大学计算机学院保研初试名单
  12. 关于win10 无线网络不可用,网络适配器出现全感叹号
  13. 格拉姆-施密特过程的程序实现
  14. 气体灭火系统和自动喷水灭火系统之区别
  15. selenium 自动化测试工具(二)常用定位方式
  16. python之pil的使用
  17. 使用STM32输出PWM波形
  18. YMatrix 番外篇|透过镜头,那些不为人知的故事
  19. table 汽车之家 车型对比 简单实现 列变行
  20. NLP资源汇总和工具汇总

热门文章

  1. 创建软连接与删除软连接
  2. Android中设置org.gradle.jvmargs
  3. 如何使用计算机自动筛选功能,如何设置自动筛选,如何设置自动筛选条件
  4. Linux文件锁的使用
  5. json expected name at 1 1
  6. faiss教程【facebook官方文档】
  7. 深入解读 | 高清人像美肤GAN模型,达摩院一键去瑕疵、褶皱
  8. 字体反爬——可视化字符匹配通用方案(浏览器版)
  9. monolog php,awesome PHP之monolog
  10. vue项目中,el-input type=“number“可以输入字母e . -的问题解决