2017-02-19 8 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のスピナーをカスタマイズする方法]の複製があります(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このポップアップウィンドウはここでは「ドロップダウン」と呼ばれます –

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

関連する問題