[Android Studio]下拉式選單(Spinner)筆記四--設定標題文字大小顏色
經由設定layout可以改變Spinner選項清單文字大小顏色(參考[Android Studio]下拉式選單(Spinner)筆記三-設定文字大小顏色@ KOEI的旅行),但標題的樣式卻沒改變,本次從尋找dialog樣式設定開始,找到設定標題的style,並設定新的style來改變標題的大小和顏色。
Spinner是經alertDialogTheme來設定對話框樣式,可先編輯styles.xml,加入下列一行(MyAlertDialogStyle是之後要設定的style):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="alertDialogTheme">@style/MyAlertDialogStyle</item>
</style>
下一步是尋找alertDialogTheme原來設定值,在Android Studio中,滑鼠放在上列"alertDialogTheme" 上,按[ctrl]並點擊滑鼠,畫面就會切到values.xml中有alertDialogTheme的位置,繼續搜尋alertDialogTheme可以找到
<item name="alertDialogTheme">@style/ThemeOverlay.AppCompat.Dialog.Alert</item>
再尋找ThemeOverlay.AppCompat.Dialog.Alert樣式(一樣按[ctrl]並點擊滑鼠):
<style name="ThemeOverlay.AppCompat.Dialog.Alert" parent="Base.ThemeOverlay.AppCompat.Dialog.Alert"/>
<style name="Base.ThemeOverlay.AppCompat.Dialog" parent="Base.V7.ThemeOverlay.AppCompat.Dialog"/>
<style name="Base.ThemeOverlay.AppCompat.Dialog.Alert">
<item name="android:windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
</style>
會發現Base.ThemeOverlay.AppCompat.Dialog.Alert並沒有樣式設定,改搜尋Base.ThemeOverlay.AppCompat.Dialog的parent:Base.V7.ThemeOverlay.AppCompat.Dialog。
<style name="Base.V7.ThemeOverlay.AppCompat.Dialog" parent="Base.ThemeOverlay.AppCompat">
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:colorBackground">?attr/colorBackgroundFloating</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowTitleStyle">@style/RtlOverlay.DialogWindowTitle.AppCompat</item>
<item name="android:windowTitleBackgroundStyle">@style/Base.DialogWindowTitleBackground.AppCompat</item>
<item name="android:windowBackground">@drawable/abc_dialog_material_background</item>
...
</style>
找到windowTitleStyle就是設定標題的參數,繼續尋找它的style RtlOverlay.DialogWindowTitle.AppCompat
<style name="RtlOverlay.DialogWindowTitle.AppCompat" parent="Base.DialogWindowTitle.AppCompat">
</style>
相同方式繼續往parent找
<style name="Base.DialogWindowTitle.AppCompat" parent="android:Widget">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
<style name="TextAppearance.AppCompat.Title" parent="Base.TextAppearance.AppCompat.Title"/>
最後找到的是設定文字的大小跟顏色參數
<style name="Base.TextAppearance.AppCompat.Title">
<item name="android:textSize">@dimen/abc_text_size_title_material</item>
<item name="android:textColor">?android:textColorPrimary</item>
</style>