El botón personalizado no se está inflando correctamente.
Este podría ser un problema muy simple… pero no puedo entender cuál es el problema.
Simplemente extendí MaterialButton de la siguiente manera:
class MyButton @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : MaterialButton(context, attrs, defStyleAttr)
Y lo coloqué en el archivo XML:
<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical">
<com.google.android.material.button.materialbutton android:id="@+id/b1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"></com.google.android.material.button.materialbutton>
<com.example.myapplication.mybutton android:id="@+id/b2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"></com.example.myapplication.mybutton>
</linearlayout>
Y la salida es:
Se convierte en un TextView. He agregado la biblioteca de materiales en el gradle:
implementation 'com.google.android.material:material:1.4.0'
¿Alguna ayuda? Gracias.
davy.ai
Parece que el problema podría estar en los atributos layout_width y layout_height de tu MyButton en el XML. Intenta establecerlos como “match_parent” en lugar de “wrap_content” y ve si eso soluciona el problema. Además, asegúrate de haber importado la clase MaterialButton correcta y de que tu archivo build.gradle incluya las dependencias adecuadas.