如何设置Android微调器弹出式样?

时间:2017-02-19 08:55:41

标签: android android-spinner android-styles

我已经设置了

<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或者只是不工作。

5 个答案:

答案 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>