当前位置: 首页 > article >正文

可能是支持属性最多的类似验证码的输入控件了。一个超好用的验证码,卡号,车牌号,IP地址-输入控件 - 掘金

可能是支持属性最多的类似验证码的输入控件了。

引入依赖

implementation 'com.simple:VerCodeLayout:1.0.0'

基本使用

使用VerCodeEditText控件

<span data-line-num="1">&lt;com.simple.vclayout.VerCodeEditText</span>
<span data-line-num="2">    android:id="@+id/vcEt1"</span>
<span data-line-num="3">    android:layout_width="wrap_content"</span>
<span data-line-num="4">    android:layout_height="wrap_content"</span>
<span data-line-num="5">    app:vcCount="6"</span>
<span data-line-num="6">    app:vcFocusedBackground="@drawable/sp_focused_one"</span>
<span data-line-num="7">    app:vcMargin="5dp"</span>
<span data-line-num="8">    app:vcNormalBackground="@drawable/sp_normal_one"</span>
<span data-line-num="9">    app:vcTextSize="20sp" /&gt;</span>

可用的属性

属性名作用
vcCountEditText的个数
vcMaxLengthEditText最大输入长度
vcNormalBackground未选中的背景
vcFocusedBackground选中的背景
vcWidthEditText的宽
vcHeightEditText的高
vcMinWidthEditText的最小宽度
vcMinHeightEditText的最小高度
vcMarginEditText的外边距,当然还有MarginLeft等小属性
vcPaddingEditText的内边距,当然还有PaddingLeft等小属性
vcTextSizeEditText的文本大小
vcTextColorEditText的文本颜色
vcTextCursorDrawableEditText的游标Drawable
vcGravityEditText的Gravity
vcInputTypeEditText的输入类型

高级使用

使用VerCodeLayout控件,VerCodeEditText继承于VerCodeLayout。VerCodeLayout自带了当一个EditText输入完成选中下一个或删除完成选中上一个的功能,但是EditText必须设置maxLength

<span data-line-num="1">&lt;!--车牌--&gt;</span>
<span data-line-num="2">&lt;com.simple.vclayout.VerCodeLayout</span>
<span data-line-num="3">    android:layout_width="wrap_content"</span>
<span data-line-num="4">    android:layout_height="wrap_content"&gt;</span>
<span data-line-num="5"></span>
<span data-line-num="6">    &lt;EditText</span>
<span data-line-num="7">        android:layout_width="wrap_content"</span>
<span data-line-num="8">        android:layout_height="wrap_content"</span>
<span data-line-num="9">        android:layout_margin="5dp"</span>
<span data-line-num="10">        android:background="@drawable/sr_et_bg_accent"</span>
<span data-line-num="11">        android:gravity="center"</span>
<span data-line-num="12">        android:inputType="text"</span>
<span data-line-num="13">        android:maxLength="1" /&gt;</span>
<span data-line-num="14"></span>
<span data-line-num="15">    &lt;EditText</span>
<span data-line-num="16">        android:layout_width="wrap_content"</span>
<span data-line-num="17">        android:layout_height="wrap_content"</span>
<span data-line-num="18">        android:layout_margin="5dp"</span>
<span data-line-num="19">        android:background="@drawable/sr_et_bg_accent"</span>
<span data-line-num="20">        android:gravity="center"</span>
<span data-line-num="21">        android:inputType="text"</span>
<span data-line-num="22">        android:maxLength="1" /&gt;</span>
<span data-line-num="23"></span>
<span data-line-num="24">    &lt;EditText</span>
<span data-line-num="25">        android:layout_width="wrap_content"</span>
<span data-line-num="26">        android:layout_height="wrap_content"</span>
<span data-line-num="27">        android:layout_margin="5dp"</span>
<span data-line-num="28">        android:background="@drawable/sr_et_bg_accent"</span>
<span data-line-num="29">        android:gravity="center"</span>
<span data-line-num="30">        android:inputType="number"</span>
<span data-line-num="31">        android:maxLength="1" /&gt;</span>
<span data-line-num="32"></span>
<span data-line-num="33">    &lt;EditText</span>
<span data-line-num="34">        android:layout_width="wrap_content"</span>
<span data-line-num="35">        android:layout_height="wrap_content"</span>
<span data-line-num="36">        android:layout_margin="5dp"</span>
<span data-line-num="37">        android:background="@drawable/sr_et_bg_accent"</span>
<span data-line-num="38">        android:gravity="center"</span>
<span data-line-num="39">        android:inputType="number"</span>
<span data-line-num="40">        android:maxLength="1" /&gt;</span>
<span data-line-num="41"></span>
<span data-line-num="42">    &lt;EditText</span>
<span data-line-num="43">        android:layout_width="wrap_content"</span>
<span data-line-num="44">        android:layout_height="wrap_content"</span>
<span data-line-num="45">        android:layout_margin="5dp"</span>
<span data-line-num="46">        android:background="@drawable/sr_et_bg_accent"</span>
<span data-line-num="47">        android:gravity="center"</span>
<span data-line-num="48">        android:inputType="number"</span>
<span data-line-num="49">        android:maxLength="1" /&gt;</span>
<span data-line-num="50">&lt;/com.simple.vclayout.VerCodeLayout&gt;</span>

可用的方法

方法名方法作用
setOnCompleteListener监听输入完成
clear清除所有的输入
getEditTexts获取所有的EditText

版本更新

  • 1.0.0 首次上传

http://www.kler.cn/a/285906.html

相关文章:

  • 计算机毕设选题推荐-基于python的豆瓣电子图书数据可视化分析
  • 博弈论(Nim游戏的扩展)
  • 【Linux】Ubuntu 安装 NFS 步骤详解
  • IPv6配置实验(OSPFv3)
  • 2024年8月文章一览
  • 项目实战-多子集循环嵌套 更新时的处理逻辑
  • 2D 智慧水务厂:引领水资源数字化管理
  • 【Linux修行路】进程通信——消息队列、信号量
  • 使用智谱AI大模型翻译视频字幕
  • 【性能优化】:从理论中来到实践中去(三)
  • 音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino
  • 精简多组时间代码量
  • 01:【stm32HAL】对GPIO的操作
  • 如何实现OpenHarmony的OTA升级
  • Linux grep案例
  • 创建 AD9361 的 vivado 工程,纯FPGA配置,不使用ARM程序
  • Qt 中 QDir 常用函数详解
  • [LLM][Prompt Engineering]:大语言模型上下文学习-What、How、Why?
  • sqlite3的db.parallelize方法:并行执行SQL语句,提升数据库操作效率
  • 常见框架报错信息