Если использование заглавной буквы происходит в дополнение к вашему пользовательскому стилю кнопок по умолчанию, нет необходимости делать стиль заглавными буквами дочерним по отношению к ?attr/materialButtonStyle
(Это невозможно сделать в любом случае, поскольку ?attr
ссылается на атрибут в текущей применяемой теме).Подробнее об этом можно прочитать здесь .
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="buttonStyle">@style/DefaultButton</item>
</style>
<style name="DefaultButton" parent="Widget.AppCompat.Button">
<item name="android:textColor">@color/white</item>
</style>
<style name="AllCapsButton">
<item name="android:textAllCaps">true</item>
</style>
layout.xml
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:theme="@style/AllCapsButton"/>
В приведенном выше коде button
получает стиль DefaultButton
(белый текст), применяемый к теме, и стиль AllCapsButton
(заглавные буквы), применяемый в файле макета.