Estoy creando un botón en una actividad:¿Cómo extiendo el estilo de un botón?
Button contactButton = new Button(this, null, R.style.ContactButton);
contactButton.setText(contactName);
contactsView.addView(contactButton);
Con el estilo correspondiente:
<style name="ContactButton" parent="@android:style/Widget.Button">
</style>
que estoy tratando de conseguir que se utilice el estilo ContactButton, extendiendo el estilo Widget.Button , para que pueda mantener las propiedades de estilo en un solo lugar sin tener que redefinir todo el botón (9-patch background et al.)
Sin embargo, no encuentro ninguna forma de heredar el estilo de botón predeterminado. El resultado de lo anterior siempre parece ser un TextView predeterminado.
El más cercano que tengo es pasar el buttonStyle al constructor Button, que me devuelve la mirada botón por defecto, pero por supuesto no puedo anular esta manera:
Button contactButton = new Button(this, null, android.R.attr.buttonStyle);
Así, alguna idea de cómo ¿para lograr esto?
Actualización:
Esto parece ser un bug in the View class, lo que explica por qué new Button(this, null, android.R.attr.buttonStyle)
obras y new Button(this, null, android.R.style.Widget_Button)
no es así, aunque el primero es sólo una referencia a este último.
Solo me encuentro con este error porque estoy creando los botones programáticamente, establecer el atributo style
en XML funciona bien.
Todavía me gustaría saber si hay una solución simple que todavía me permita usar el sistema de estilo.
¿Ha intentado inflar el botón de XML en lugar de crearlo pragmáticamente? – schwiz
¿Encontró una solución? –