Есть ли виджет, например EditText
, который содержит кнопку с крестиком, или есть какое-либо свойство для EditText
, с помощью которого создается автоматически? Я хочу, чтобы кнопка с крестиком удаляла весь текст, написанный в EditText
.
Просто поместите близкий крест как drawableEnd
в Вашем EditText
:
<EditText
...
android:drawableEnd="@drawable/ic_close"
android:drawablePadding="8dp"
... />
и расширение использования для обработки нажимают (или используйте OnTouchListener
непосредственно на Вашем EditText
):
fun EditText.onDrawableEndClick(action: () -> Unit) {
setOnTouchListener { v, event ->
if (event.action == MotionEvent.ACTION_UP) {
v as EditText
val end = if (v.resources.configuration.layoutDirection == View.LAYOUT_DIRECTION_RTL)
v.left else v.right
if (event.rawX >= (end - v.compoundPaddingEnd)) {
action.invoke()
return@setOnTouchListener true
}
}
return@setOnTouchListener false
}
}
дополнительное использование:
editText.onDrawableEndClick {
// TODO clear action
etSearch.setText("")
}