【问题标题】:How to spinner popup background color change如何微调弹出背景颜色更改
【发布时间】:2020-04-20 18:44:24
【问题描述】:

我想把旋转器打开框设置为黑色,但它不起作用。

样式代码:

<style name="Spinner">
    <item name="android:popupBackground">@color/colorBlack</item>
    <item name="android:paddingStart">0dp</item>
    <item name="android:paddingEnd">0dp</item>
    <item name="android:textColor">@color/colorWhite</item>
    <item name="android:backgroundTint">@color/colorWhite</item>
    <item name="android:textSize">20sp</item>
    <item name="android:spinnerMode">dropdown</item>

</style>

微调器代码

            <androidx.appcompat.widget.AppCompatSpinner
                style="@style/Widget.AppCompat.Spinner.Underlined"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:entries="@array/array_name"
                android:theme="@style/Spinner">

            </androidx.appcompat.widget.AppCompatSpinner>

我的设备 android 版本 5(lolipop)

【问题讨论】:

    标签: android xml android-spinner


    【解决方案1】:

    我发现的解决方案是您已将自定义项目布局与您想要的背景颜色放在适配器中。请在下面查看

    @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View vista = convertView;       
    
            // layout for spinner widget
    
            if (vista==null) {
                LayoutInflater inflater = actividad.getLayoutInflater();
                vista = inflater.inflate(R.layout.fila_colores_spinner, null);                  
            }
    
            return vista;
        }
    
        @Override
        public View getDropDownView(int position, View convertView,ViewGroup parent) {
            View vista = convertView;       
    
            //layout for spinner popup
    
            if (vista==null) {
                LayoutInflater inflater = actividad.getLayoutInflater();
                vista = inflater.inflate(R.layout.fila_colores_spinner_popup, null);                    
            }
    
            return vista;
        }
    

    【讨论】:

      【解决方案2】:

      您应该将样式应用于微调器,而不是主题在 xml 中进行此更改。

       <androidx.appcompat.widget.AppCompatSpinner
                     android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="10dp"
                      android:entries="@array/array_name"
                      style="@style/Spinner"/>
      

      将父级添加到微调器样式。

      <style name="Spinner" parent="Widget.AppCompat.Spinner.Underlined">
              <item name="android:popupBackground">@color/colorPrimary</item>
              <item name="android:background">@color/cardview_dark_background</item>
              <item name="android:paddingStart">0dp</item>
              <item name="android:paddingEnd">0dp</item>
              <item name="android:textColor">@color/white</item>
              <item name="android:backgroundTint">@color/white</item>
              <item name="android:textSize">20sp</item>
              <item name="android:spinnerMode">dropdown</item>
      
          </style>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 2014-02-09
        相关资源
        最近更新 更多