Android开发之一键清空内容的输入框
16lz
2021-01-26
前言:
在日常的开发中因为涉及到用户交互的问题,我们难免会涉及到一些控件的使用,比如输入框EditText,文本显示控件TextView,这些控件都是Google在Android原生的api里面提供给我们开发者用来方便开发的控件,这些控件在一些基本需求的情况都可以满足,但是在用户交互如此注重的时代难免存在一点美中不足,那就需要我们对这些原生的控件进行一些修改,以便于达到我们的需求,话不多说,先上图:
接下来说一说实现步骤,从效果图我们可以看出这是一个输入框,用它来跟原生的EditText对比一下的,可以看见后面多了一个删除的图标,那我们的实现思路为定义一个类继承于原生的EditText然后进行我们需要的处理操作。
步骤一:
定义一个变量来实现后面删除图标的引用以及左,上,下间距的变量:
imgAble = mContext.getResources().getDrawable(R.drawable.delete_img);drawableLeft = getCompoundDrawables()[0];drawableTop = getCompoundDrawables()[1];drawableButtom = getCompoundDrawables()[3];
判断输入框文字的长度,根据长度判断是否显示删除图标
if (length() < 1) {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgInable, drawableButtom);
} else {
setCompoundDrawablesWithIntrinsicBounds(drawableLeft, drawableTop, imgAble, drawableButtom);
}
步骤二:重写onTouchEvent方法实现点击删除图标清空输入框的逻辑
public boolean onTouchEvent(MotionEvent event) { if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) { int eventX = (int) event.getRawX(); int eventY = (int) event.getRawY(); Rect rect = new Rect(); getGlobalVisibleRect(rect); rect.left = rect.right - 50; if (rect.contains(eventX, eventY)) setText(""); } return super.onTouchEvent(event);}
到这里,一个带清空输入功能的输入框就完成了,欢迎大家一起留言改正其中的不足
更多相关文章
- Android(安卓)View中的控件和监听方法...
- Android自定义View实现竖直跑马灯效果案例解析
- 如何删除Android系统中的内置应用
- Android智能电视开发之明星UI---RecyclerView
- Android客户端实现图片轮播控件
- Python+PyQT5的子线程更新UI界面
- 一步步客制化Android桌面(Launcher3)图标
- Android(安卓)RatingBar 评星控件的自定义大小和样式
- Android(安卓)自定义控件之组合控件