[英]How to set dropdown arrow from drawable in spinner?
我試圖在 Spinner 中將 drawable 設置為箭頭,但不支持位圖。
我使用了 svg 文件(ic_arrow.xml)並將其設置在spinner_arrow.xml
文件中:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<padding
android:left="4dp"
android:top="4dp"
android:right="4dp"
android:bottom="4dp"
/>
<solid android:color="@color/white" />
<stroke android:width="2px" android:color="@color/grey" />
<corners android:radius="5dp" />
</shape>
</item>
<item>
<bitmap android:gravity="center|right" android:src="@drawable/ic_arrow"/>
</item>
</layer-list>
所以我用它作為布局文件的背景
<Spinner
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/spinner_arrow"/>
但是我在顯示 Spinner 時出錯:“myapp:layout/activity_registration_driver 中的二進制 XML 文件第 41 行:錯誤膨脹類 Spinner”。
我認為問題在於在微調器中為箭頭添加可繪制但我不知道如何解決
請使用以下代碼添加帶有微調器的箭頭:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/btn_height_common"
android:layout_marginLeft="@dimen/_15sdp"
android:layout_marginTop="@dimen/_5sdp"
android:layout_marginRight="@dimen/_15sdp"
android:background="@drawable/bg_editext">
<Spinner
android:id="@+id/sp_gender"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:entries="@array/gender"
android:fontFamily="@font/gotham_narrow_book"
android:overlapAnchor="false"
android:paddingLeft="@dimen/_10sdp"
android:paddingRight="@dimen/_10sdp"
android:textColor="@color/gray_text_color"
android:textSize="@dimen/normal_textsize" />
<ImageView
android:layout_width="@dimen/_15sdp"
android:layout_height="@dimen/_15sdp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/_15sdp"
android:padding="@dimen/_2sdp"
android:src="@mipmap/ic_down_gray" />
</RelativeLayout>
輸出:
基本上需要為微調器創建自定義背景。 它應該是這樣的:spinner_background.xml
<item>
<layer-list>
<item>
<color
android:color="@android:color/white"/>
</item>
<item>
<bitmap
android:gravity="center_vertical|right"
android:src="@drawable/ic_arrow_drop_down_black_24dp"/>
</item>
</layer-list>
</item>
然后為您的微調器創建一個自定義樣式,您將上面的選擇器指定為背景:
<style name="Widget.App.Spinner" parent="@style/Widget.AppCompat.Spinner">
<item name="overlapAnchor">true</item>
<item name="android:background">@drawable/spinner_background</item>
</style>
最后,在您的應用主題中,如果您希望在整個應用中應用它,您應該覆蓋兩個屬性:
<item name="spinnerStyle">@style/Widget.App.Spinner</item>
<item name="android:spinnerStyle">@style/Widget.App.Spinner</item>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.