是否有像EditText这样包含交叉按钮的小部件,或者是否有自动创建EditText的属性?我想用十字按钮删除任何写在EditText中的文本。
当前回答
对于可绘制的资源,您可以使用标准的android图像:
http://androiddrawables.com/Menu.html网站档案
例如:
android:background="@android:drawable/ic_menu_close_clear_cancel"
其他回答
如果你碰巧使用DroidParts,我刚刚添加了clearleedittext。
下面是自定义背景和清除图标设置为abs__ic_clear_holo_light的效果:
这是一个kotlin溶液。把这个助手方法放在某个kotlin文件中
fun EditText.setupClearButtonWithAction() {
addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(editable: Editable?) {
val clearIcon = if (editable?.isNotEmpty() == true) R.drawable.ic_clear else 0
setCompoundDrawablesWithIntrinsicBounds(0, 0, clearIcon, 0)
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit
})
setOnTouchListener(View.OnTouchListener { _, event ->
if (event.action == MotionEvent.ACTION_UP) {
if (event.rawX >= (this.right - this.compoundPaddingRight)) {
this.setText("")
return@OnTouchListener true
}
}
return@OnTouchListener false
})
}
然后像下面那样在onCreate方法中使用它,你应该很好
yourEditText.setupClearButtonWithAction()
顺便说一句,你必须添加R.drawable。Ic_clear或清除图标。这个来自谷歌- https://fonts.google.com/icons?selected=Material%20Icons%20Outlined%3Aclear%3A
明确的文本:
"文本字段带有清晰的文本尾随图标。"
如果设置了,当文本出现时将显示一个图标,按下该图标将清除输入文本。
...
app:endIconMode="clear_text">
...
</com.google.android.material.textfield.TextInputLayout>
我把它留在这里:
material.io
例子
如果你不想使用自定义视图或特殊的布局,你可以使用9-patch来制作(X)按钮。
示例:http://postimg.org/image/tssjmt97p/(我没有足够的点在StackOverflow上发布图像)
右边和底部黑色像素的交点表示内容区域。这个区域以外的都是空白。为了检测用户是否点击了x,你可以像这样设置OnTouchListener:
editText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_UP){
if (motionEvent.getX()>(view.getWidth()-view.getPaddingRight())){
((EditText)view).setText("");
}
}
return false;
}
});
根据您的需要,这种解决方案在某些情况下可以更好地工作。我希望我的xml不那么复杂。这也有助于如果你想有一个图标在左边,因为你可以简单地把它包括在9补丁。
对于可绘制的资源,您可以使用标准的android图像:
http://androiddrawables.com/Menu.html网站档案
例如:
android:background="@android:drawable/ic_menu_close_clear_cancel"
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件