前言
在app的输入框中,需要应用到很多带有前缀说明的输入框,运用原有的输入框和文本控件,一个带头部的输入框就会增加三个控件在layout文件中。当布局文件输入框较少的情况下,这样对后期维护影响不大,但在多个带头部的输入框下,布局文件代码量会很大,影响阅读以及后期维护。而封装过后的控件,在使用中仅仅需要几行代码可实现几十行的效果。
简介
带头部文字的输入框
可在xml定义头部文字样式
可在xml定义输入框样式
可在xml定义提示文字样式
可在xml定义头部和输入框的间距和边距
效果图
使用方法
android:layout_width="match_parent"
android:layout_height="50dp"
app:inputMarginStart="10dp"
app:headerText="姓名"
app:hint="请输入联系人姓名"
app:inputType="text"
app:maxLength="30"/>
源码在这
有帮助请点个赞
attrs.xml 属性文档
common_edit_input_view.xml 布局文件
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/tv_edit_head"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="start|center_vertical"/>
android:id="@+id/et_edit_input"
android:layout_toEndOf="@id/tv_edit_head"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:background="@null"
android:textColor="@color/c_2B303C"
android:gravity="end|center_vertical"/>
EditInputView.java 控件类
package com.momin.common.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Typeface;
import android.text.InputFilter;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.ColorRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompa