2016-04-11 62 views
0

我爲我的微調器使用自定義設計,但文本在微調器的右側圖標上有重疊。請看附件圖片。Android自定義微調器文本重疊右鍵圖標

<Spinner 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:spinnerMode="dialog" 
       android:background="@drawable/spinner_bg" 
       android:id="@+id/mySpinner" 
       android:prompt="Testing" 
       android:layout_marginTop="8dp" /> 

spinner_bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <layer-list> 
     <item> 
      <shape> 
       <gradient 
        android:startColor="#6e95bd" 
        android:endColor="#517295" 
        android:angle="270" /> 
       <stroke 
        android:width="1dp" 
        android:color="#000" /> 
       <corners 
        android:radius="50dp" /> 
      </shape> 
     </item> 
     <item> 
      <bitmap android:gravity="right|center_vertical" android:src="@mipmap/ic_spinner_down"/></item> 

    </layer-list> 
</item> 


</selector> 

result:

+0

根據您的實現,這是結果,因爲它被設置爲wrap_content你會得到和向下箭頭添加爲背景的形狀。所產生的行爲是根據你的實現 –

回答

0

嘗試使用android:paddingRight="30dp"以上根據你的圖標。

<Spinner 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:spinnerMode="dialog" 
    android:background="@drawable/spinner_bg" 
    android:id="@+id/mySpinner" 
    android:prompt="Testing" 
    android:layout_marginTop="8dp" 
    android:paddingRight="30dp" /> 
1

由於背景設定爲微調,不管微調的寬度是什麼,它總是重疊的右邊的圖標,所以最簡單的方式來實現你要實現的目標是什麼 <LinearLayout android:layout_width="match_parent" android:background="@drawable/spinner_bg" android:layout_height="wrap_content"> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dialog" android:layout_gravity="left" android:gravity="left" android:background="@android:color/transparent" android:id="@+id/mySpinner" android:prompt="Testing" android:layout_marginTop="8dp" /> </LinearLayout>

0

製作自定義適配器的微調,並設置單行的佈局如下:

<?xml version="1.0" encoding="utf-8"?> 
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 
     <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="left"/> 
    <ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="right"/> 
    </FrameLayout>