2017-06-13 118 views
2

我想創建一個微調與一些背景顏色和dropdownicon.But每當我應用背景顏色的下拉圖標消散。所以如何讓微調與下拉圖標&不同的背景顏色。 請對XML一看,我試圖如下:Spinner背景顏色與下拉圖標

預期輸出:

enter image description here

獲取(不含下拉圖標)

enter image description here

刪除背景然後我發現了以下的輸出:

enter image description here

<android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_marginLeft="@dimen/dp_5" 
     android:layout_marginRight="@dimen/dp_5" 
     android:layout_weight="8" 
     android:padding="@dimen/dp_8" 
     app:cardElevation="@dimen/dp_5"> 

     <android.support.v7.widget.AppCompatSpinner 
      android:id="@+id/appCompatSpinner" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:entries="@array/clubName" 
      android:textAlignment="center" 
      android:spinnerMode="dropdown" 
      android:background="@color/colorPrimary_blue" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

     </android.support.v7.widget.AppCompatSpinner> 
    </android.support.v7.widget.CardView> 

回答

2

創建.xml類並編寫此庫。

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <color android:color="@color/InputBg" /> 
</item> 
<item android:gravity="center_vertical|right" android:right="8dp"> 
    <layer-list> 
     <item android:width="12dp" android:height="12dp" android:gravity="center" android:bottom="10dp"> 
      <rotate 
       android:fromDegrees="45" 
       android:toDegrees="45"> 
       <shape android:shape="rectangle"> 
        <solid android:color="#666666" /> 
        <stroke android:color="#aaaaaa" android:width="1dp"/> 
       </shape> 
      </rotate> 
     </item> 
     <item android:width="30dp" android:height="10dp" android:bottom="21dp" android:gravity="center"> 
      <shape android:shape="rectangle"> 
       <solid android:color="@color/InputBg"/> 
      </shape> 
     </item> 
    </layer-list> 
</item> 

 And Apply like this in Spinner. 
<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/spinner_bg" /> 
+0

是的,它的工作! –

2

簡單的解決方法,以這只是包裝您的微調中的FrameLayout和設置您所選擇的佈局的背景顏色

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/blue" 
    > 

    <Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     /> 

</FrameLayout>