以前在为EditText添加左侧图标,以及右侧一个删除按钮时,经常是使用FrameLayout,当这样代码复用差,维护也麻烦。最好的方法是重写EditText实现该功能。现在看看效果图,后面再讲解实现方式。
重写之后的组件有如下功能,只有当EditText内容不为空,而且获得焦点,才会出现删除按钮,点击删除按钮则清空内容。代码如下:
public class CleanableEditText extends EditText {
//回调函数
private TextWatcherCallBack mCallback;
//右侧删除图标
private Drawable mDrawable;
private Context mContext;
public void setCallBack(TextWatcherCallBack mCallback) {
this.mCallback = mCallback;
}
public Clea