2016-04-11 7 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> 
関連する問題