我已经设置了
<item name="android:spinnerMode">dialog</item>
所以当我点击微调器时,我会弹出一个弹出窗口。但是那个弹出窗口是带有白色文本的灰色,我似乎无法改变任何颜色。如何设置此对话框的样式?
我尝试了以下一些疯狂的临时颜色,看看有什么变化,但没有任何变化。
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:dialogTheme">@style/SpinnerDialog</item>
<item name="android:alertDialogTheme">@style/SpinnerAlertDialog</item>
</style>
<style name="SpinnerDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="android:popupBackground">#ff00ff</item>
<item name="colorPrimary">#ff00ff</item>
<item name="colorPrimaryDark">#ffff00</item>
<item name="colorAccent">#ff0000</item>
</style>
<style name="SpinnerAlertDialog" parent="Theme.AppCompat.Dialog">
<item name="colorPrimary">#00ffff</item>
<item name="colorPrimaryDark">#00ff00</item>
<item name="colorAccent">#0000ff</item>
</style>
有许多类似的问题,但它们都处理下拉列表或古老版本的Android或者只是不工作。
答案 0 :(得分:8)
而不是使用theme或style.xml来更改对话框的弹出背景颜色。
为什么不尝试这个?在你的布局xml
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
android:popupBackground="#yourcolor"/>
因为你尝试添加主题它没有任何改变。这很容易实现..不是吗?
希望这有帮助!!!
答案 1 :(得分:3)
您可以使用自定义布局来实现此目的。
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
R.id.custom_spinner_item, yourItemList);
adapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);
spinner.setAdapter(adapter);
您应该有自定义布局:
R.id.custom_spinner_item
用于微调器中的项目。R.layout.custom_spinner_dropdown_item
用于微调器下拉项目。答案 2 :(得分:0)
只需使用包含所需颜色的“背景”项创建主题。
.getAttribute(0)
然后将您的微调器的主题设置为“ popupTheme”属性。
<style name="Spinner.PopUpTheme">
<item name="android:background">@color/black</item>
</style>
答案 3 :(得分:0)
我想更改对话框背景并添加自定义填充,如下所示:
<style name="customSpinnerDialog" >
<item name="android:background">@android:color/white</item>
<item name="android:textColor">@color/color_accent</item>
<item name="android:padding">0dp</item>
</style>
适用于布局xml中的微调框:
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/reason_spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:theme="@style/customSpinnerDialog"
android:spinnerMode="dialog"
style="@style/SpinnerTheme"
/>
希望这会有所帮助。
答案 4 :(得分:0)
在您的应用主题或活动中:
update person
set age = age + 1
where id = 1;
声明SpinnerStyle1:
<item name="android:dropDownListViewStyle">@style/SpinnerStyle1</item>