代码之家  ›  专栏  ›  技术社区  ›  theerasan tonthongkam

有什么简单的方法可以改变Android中的微调器下拉菜单的颜色吗?

  •  8
  • theerasan tonthongkam  · 技术社区  · 7 年前

    enter image description here

    我创建了与应用程序一起使用的主题,主题的父对象是 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中的微调器下拉菜单的颜色吗?

    6 回复  |  直到 7 年前
        1
  •  11
  •   Akhilesh Awasthi    7 年前

    对您可以在xml中使用以下微调器属性

    android:popupBackground="YOUR_HEX_COLOR_CODE"
    

    spin_项。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)
    
        2
  •  3
  •   Filipe Brito Danilo Lemes    6 年前

    更改 使用 android:popupBackground="@color/aColor" 在xml文件中 Spinner 小装置:

    <Spinner
        android:id="@+id/my_spinner"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:popupBackground="@color/aColor" />
    

    在你的游戏中玩轻主题时 styles.xml 微调器下拉图标颜色 <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

        3
  •  2
  •   Sushin PS    7 年前

    通过代码

    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" />
    

    Please check the answer here

        4
  •  1
  •   mehul chauhan    7 年前

    在代码中,在onCreate()中添加以下内容:

     Spinner spinner = (Spinner) findViewById(R.id.spinner);
     spinner.getBackground().setColorFilter(getResources().getColor(R.color.red), 
     PorterDuff.Mode.SRC_ATOP);
    
        5
  •  1
  •   Bhargav    7 年前

    <?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

    然后在创建过程中将其设置为arrayadapter,如下所示

    val adapter = ArrayAdapter.createFromResource(activity,
                    R.array.email_type_array, .R.layout.custom_ simple_spinner_item)
    
        6
  •  0
  •   Kishore Reddy    6 年前

    location\u Survey\u Spin。getBackground()。setColorFilter(getResources()。getColor(R.color.black),PorterDuff。模式SRC_顶部)//它将更改微调器下拉列表的颜色