import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.widget.FrameLayout
import android.widget.TextView
import com.google.android.material.textfield.TextInputLayout
class TextInputLayoutCustomError : TextInputLayout {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyle: Int)
: super(context, attrs, defStyle)
override fun setErrorEnabled(enabled: Boolean) {
super.setErrorEnabled(enabled)
if (enabled) {
enableError()
}
}
private fun enableError() {
val errorView = findViewById<TextView>(com.google.android.material.R.id.textinput_error)
(errorView?.parent as? FrameLayout)?.let { parentFrameLayout ->
customizeErrorContainer(parentFrameLayout)
}
}
private fun customizeErrorContainer(frameLayout: FrameLayout) {
frameLayout.setBackgroundColor(Color.RED)
}
}