2017-02-19 53 views
0

我已經設置如何樣式Android微調彈出窗口?

<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

你有沒有嘗試創建一個自定義佈局和適配器,如上所述[這裏](http://stackoverflow.com/a/17213328/3857465)? –

+1

可能的重複[如何在Android中自定義Spinner](http://stackoverflow.com/questions/16694786/how-to-customize-a-spinner-in-android) –

+0

我不想做那些東西在代碼中。他們認真嗎?我只想改變對話框的背景,而不是創建Android的分支或他們建議的任何東西。 – TimSim

回答

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爲微調下拉項目。
+0

我沒有使用下拉菜單。我只想改變彈出窗口的背景顏色,而不是更改任何項目。 – TimSim

+0

@TimSim這個彈出窗口在這裏叫做「drop down」 –

5

而不是使用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

這應該是被接受的答案。 :) – WaaleedKhan