Androidでカスタムスピナーを設計しています。このカスタム スピナーは、3.0 以降のバージョンではクリックできず、スピナーの値を設定した後はクリックできません。以下のコードの何が問題なのか誰か見つけてください。コードを変更できます。以下はカスタムスピナー画像です
私のメインの spinner.xml
<Spinner
android:id="@+id/projDetSpnrPhase"
style="@style/spinner_style"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:clickable="true"
android:paddingBottom="10dp"
android:prompt="@string/phase" />
スピナーの 2 つのスタイル 1 つはバージョン >11 用、もう 1 つはバージョン <11 用
11
<style name="spinner_style" parent="fp_wc">
<item name="android:background">@drawable/spinner_selectors</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:popupBackground">#DFFFFFFF</item>
<item name="android:spinnerStyle">@android:style/Widget.Spinner.DropDown</item>
</style>
< 11
<style name="spinner_style" parent="fp_wc">
<item name="android:background">@drawable/spinner_selectors</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:popupBackground">#DFFFFFFF</item>
</style>
以下はスピナーリスナーです。
spinnerPhase.setOnItemSelectedListener((OnItemSelectedListener)
new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
........
}
セレクターの spinner_selectors.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item
android:state_pressed="true"
android:drawable="@drawable/spinner_selector_selected" />
<!-- Pressed -->
<item
android:state_enabled="true"
android:drawable="@drawable/spinner_selectors_default" />
</selector>
スピナーの隅にある境界線とスピナー画像の spinner_selector_selected.xml。
<?xml version="1.0" encoding="utf-8"?>
<item>
<layer-list>
<item>
<shape>
<stroke android:width="2dp" android:color="@color/gray" />
<corners android:radius="4dp" />
<padding
android:bottom="3dp"
android:left="3dp"
android:right="3dp"
android:top="3dp" />
<solid android:color="@color/pressed_color"/>
</shape>
</item>
<item>
<bitmap
android:gravity="bottom|right"
android:src="@drawable/spinner_ab_default_new_theme_bs" />
</item>
</layer-list>