[英]How to customized SpinnerItemStyle with styles.xml
我尝试使用样式文件自定义spinnerItem。 我可以更改微调器样式(bg,边框或字体颜色等),但spinnerItem始终具有白色的文本和灰色的背景。
你有什么主意吗?
ps:我不应该为此使用新的适配器。
这是我的styles.xml:
<style name="AppTheme" parent="AppTheme.Base">
<item name="android:spinnerItemStyle">@style/SpinnerItemTheme</item>
</style>
<style name="SpinnerTheme" parent="Edit">
<item name="android:background">@color/blueColor</item>
<item name="android:dropDownSelector">@color/darkRedColor</item>
<item name="android:dropDownItemStyle">@style/SpinnerItemTheme</item>
<item name="android:spinnerItemStyle">@style/SpinnerItemTheme</item>
</style>
<style name="Edit" parent="Text.Display">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:gravity">top|left</item>
<item name="android:textSize">20sp</item>
</style>
<style name="SpinnerItemTheme" parent="SpinnerTheme">
<item name="android:textColor">#000000</item>
<item name="android:background">@color/blueColor</item>
</style>
这是我的布局文件:
<android.support.v7.widget.AppCompatSpinner
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/SpinnerTheme"
android:prompt="@string/prompt_nation"
android:entries="@array/countries">
</android.support.v7.widget.AppCompatSpinner>
试试这个代码:
<resources>
<style name="customtheme" parent="@android:style/Theme.Light">
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
</style>
<style name="SpinnerItem">
<item name="android:textColor">@color/your_color</item>
<item name="android:background">@drawable/your_backgroung</item>
</style>
<style name="SpinnerDropDownItem">
<item name="android:textColor">@color/your_color</item>
<item name="android:background">@drawable/your_background</item>
</style>
</resources>
styles.xml:
<style name="ToolbarSpinner" parent="AppTheme"> <item name="android:spinnerItemStyle">@style/ToolbarSpinnerItem</item> <item name="android:spinnerDropDownItemStyle">@style/ToolbarSpinnerDropDownItem</item> </style> <style name="ToolbarSpinnerItem" parent="TextMedium"> <item name="android:textColor">@color/material_grey_white_1000</item> <item name="android:gravity">center_vertical</item> </style> <style name="ToolbarSpinnerDropDownItem" parent="TextMedium"> <item name="android:textColor">@color/material_grey_black_1000</item> <item name="android:gravity">center_vertical</item> <item name="android:paddingRight">@dimen/space_small</item> <item name="android:paddingLeft">@dimen/space_small</item> </style>
布局:
<Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dialog" android:theme="@style/ToolbarSpinner"/>
onCreateView:
spinnerAdapter = new ArrayAdapter<>(spinner.getContext(), android.R.layout.simple_spinner_item, listSource); spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(spinnerAdapter);
请注意,应使用spinner.getContext()初始化ArrayAdapter,因为此上下文包含所需的主题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.