我有一个主题应用的BaseActivity,我已经将属性colorBackground定义为我的应用程序的默认背景颜色(比如棕色)。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorBackground">@color/app_background</item>
</style>
这样做,它是否为在该活动中加载的片段之一中的微调器提供与我的应用程序背景(棕色)相同的颜色背景。 像这样: Problem
但我希望样式默认为白色背景,而不是colorBackground。
为了实现这一点,我为Spinner创建了一个样式 如
<style name="AppSpinner" parent="Widget.AppCompat.Spinner">
<item name="android:popupBackground">#ffffff</item>
</style>
我将这种风格应用为
<Spinner
style="@style/AppSpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
这给了我下拉弹出窗口的白色背景,但周围是一个奇怪的黑色背景。 像这样: tried solution
我也在AppSpinner中尝试了其他属性 android:background和android:colorBackground也是,但结果相同。
为什么?我怎么能改变这一点。 或者是否有其他方法可以达到预期的效果。
答案 0 :(得分:0)
我也遇到了这个问题并且解决了这个问题:
第二个必须继承第一个并设置colorBackground
属性(未在第一个版本中设置)。像这样:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- some theme attributes, for example accent color, etc. -->
</style>
<style name="AppTheme.WithBackground">
<item name="android:colorBackground">@color/app_background</item>
</style>
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme.WithBackground" ... >
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme" />
这对我来说非常有效,即使没有透支警告。