アプリで使用するテーマを作成しました。テーマの親はTheme.AppCompat.Light.NoActionBar
ちなみに、背景は白、テキストは黒が欲しいです。
そしてこれはアダプタコードです
val adapter = ArrayAdapter.createFromResource(activity,
R.array.email_type_array, Android.R.layout.simple_spinner_item)
adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item)
child.spinner.adapter = adapter
AndroidでSpinnerドロップダウンの色を変更する簡単な方法はありますか?
はい。 xml内でスピナーから次の属性を使用できます
Android:popupBackground="YOUR_HEX_COLOR_CODE"
textcolorなどを変更するにはスピナーアイテムのカスタムXMLファイルを作成します。
spin_item.xml:
次に、希望の色とサイズを指定します。
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textSize="24sp"
Android:textColor="#000000"
Android:padding="4dp"
/>
そして、次のように使用します。
val adapter = ArrayAdapter.createFromResource(activity,
R.array.email_type_array, Android.R.layout.simple_spinner_item)
adapter.setDropDownViewResource(R.layout.spin_item)
次のような新しいレイアウトファイルを作成します
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
Android:singleLine="true"
Android:layout_width="match_parent"
Android:layout_height="?android:attr/dropdownListPreferredItemHeight"
Android:ellipsize="Marquee"
Android:background="MY REQUIRED COLOR"/>
私がMY REQUIRED COLOR
と言う場所で、あなたが望む色にそれを設定してください。
また、Android:id
属性は変更しないでください。これは、arrayadapterがこれを使用してテキストをtextviewに設定するためです。
次に、作成中にそれをアレイアダプターに設定します。
val adapter = ArrayAdapter.createFromResource(activity,
R.array.email_type_array, .R.layout.custom_ simple_spinner_item)
ドロップダウンの背景色を変更するには、Spinner
ウィジェットのxmlファイルでAndroid:popupBackground="@color/aColor"
を使用します。
<Spinner
Android:id="@+id/my_spinner"
Android:layout_width="100dp"
Android:layout_height="match_parent"
Android:popupBackground="@color/aColor" />
styles.xml
fileで明るいテーマで遊ぶ場合、スピナードロップダウンアイコンの色は黒になりますが、<item name="Android:textColorSecondary">@color/aColor</item>
を使用している場合は、ドロップダウンアイコンがその色を選択することに注意してください。
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="Android:textColorSecondary">@color/aColor</item>
あなたの質問でさえドロップダウンの背景色私がここに来たのは、私のスピナードロップダウンアイコンの色がそれを発見するまで別の色であった理由を理解しようとしていたからです( Android:textColorSecondary
)-それが他の誰かにも役立つことを願っています。
コードを介して
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), PorterDuff.Mode.SRC_ATOP);
またはXMLを介して
API 21以降の場合:
<Spinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:backgroundTint="@color/red" />
または、サポートライブラリを使用する場合は、次を使用できます。
<Android.support.v7.widget.AppCompatSpinner
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:backgroundTint="@color/red" />
コードで、onCreate()に以下を追加します。
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.getBackground().setColorFilter(getResources().getColor(R.color.red),
PorterDuff.Mode.SRC_ATOP);
location_Survey_Spin = findViewById(R.id.location_Survey_Spinner); location_Survey_Spin.getBackground()。setColorFilter(getResources()。getColor(R.color.black)、PorterDuff.Mode.SRC_ATOP); //スピナーのドロップダウンの色を変更します