我想為我的按鈕定義一個默認樣式,這樣我就不必style="@style/mainButtonStyle"在每個按鈕內手動輸入。我已經定義了樣式。
<style name="mainButtonStyle" parent="android:Widget.Material.Button">
<item name="android:background">@drawable/button_default_background</item>
<item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">sans-serif-light</item>
</style>
并且已經android:buttonStyle在應用程式的主題中添加了一個屬性。
主題.xml
<!-- Base application theme. -->
<style name="Theme.PlanShopping" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#AA0000</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSurface">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
<item name="android:buttonStyle">@style/mainButtonStyle</item>
</style>
Android Manifestandroid:theme默認設定了屬性。
<application
android:name=".PlannerApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PlanShopping"
tools:targetApi="31">
...
</application>
那么為什么它不改變默認按鈕樣式呢?如果我在按鈕內手動鍵入該樣式,則該樣式可以正常作業。但這不是我想要的結果。我怎樣才能默認設定它?我嘗試從不同型別的按鈕繼承:android:Widget.Button, android:Widget.Holo.Button. 此外,不同的<Button>型別也沒有幫助。現在,我使用的是默認<Button>組件(不是材料或全息)。
uj5u.com熱心網友回復:
如果按鈕是MaterialButton,則需要指定:
<item name="materialButtonStyle">@style/mainButtonStyle</item>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422500.html
標籤:
