設定しました
<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の古いバージョンを処理するか、機能しません。
ダイアログのポップアップ背景色を変更するために、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"/>
あなたはテーマを追加しようとしたので、それは何も変更しません。これは簡単に達成できます。
お役に立てれば!!!
カスタムレイアウトを使用してこれを実現できます。
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
スピナードロップダウン項目。ダイアログの背景を変更し、カスタムパディングを追加したかったので、ここにスタイルを示します。
<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"
/>
お役に立てれば。
好きな色が入った「背景」アイテムでテーマを作成するだけです。
<style name="Spinner.PopUpTheme">
<item name="Android:background">@color/black</item>
</style>
次に、そのテーマをスピナーの「popupTheme」属性に設定します。
<Spinner
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:spinnerMode="dialog"
Android:popupTheme="Spinner.PopUpTheme"
</Spinner>