No se puede utilizar el método setStrokeColor para el botón de material en Android.
Estoy utilizando el botón de Material con contorno en Android Studio (la versión de material es 1.4.0).
Quería cambiar el color del contorno cuando se presiona el botón. Entonces,
binding.activeButton.setOnClickListener{
binding.activeButton.setStrokeColor(Color.parseColor(” #FFFFFF”))
}
Sin embargo, no puedo usar el método “setStrokeColor”.
Dice “Referencia no resuelta: setStrokeColor”.
Todavía puedo usar “app:strokeColor=”@color/white” en el archivo XML, pero no puedo usar el método “setStrokeColor” en un archivo de actividad.
¿Cuál podría ser la razón? ¿Es debido a la versión del diseño de material?
davy.ai
Solución
El método
setStrokeColor()
no está disponible en la claseOutlinedButton
de la versión 1.4.0 de Material. En su lugar, puedes utilizar el siguiente código para cambiar el color del contorno del botón cuando se presiona:Este código establece un
OnTouchListener
en el botón, el cual escucha los eventos táctiles del botón. Cuando el usuario presiona el botón (MotionEvent.ACTION_DOWN
), el color del contorno del botón se establece en blanco (R.color.white
). Cuando el usuario suelta el botón (MotionEvent.ACTION_UP
) o cancela el toque (MotionEvent.ACTION_CANCEL
), el color del contorno del botón vuelve a su color predeterminado.Esta solución funciona para la versión 1.4.0 de Material, así como versiones anteriores.