我有一個GridView
的佈局。選擇器在Android SDK 2.1和4.2.2上有不同的行爲
Gridview
中的每個項目都是LinearLayout
,它實現了Checkable interface
。
所有工作正常。但它只能在SDK 4.2.2
SDK 4.2.2
SDK 2.1
黑色背景應該不會顯示正確顯示。
GridView的代碼
<GridView
android:id="@+id/gvBirds"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:verticalSpacing="4dp"
android:layout_margin="32dp"
android:scrollbars="vertical"
android:numColumns="auto_fit"
android:listSelector="@color/transparent">
</GridView>
GridView的項目碼
<?xml version="1.0" encoding="utf-8"?>
<pt.rogerioamaral.ByMAP.CheckableLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridItemLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:background="@drawable/grid_item_selector">
<TextView
android:id="@+id/lbBirdName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="nome grande"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/main_gradient_end"
android:drawableTop="@drawable/falcao_small"
android:background="@drawable/main_grid_background"
android:layout_margin="5dp"/>
</pt.rogerioamaral.ByMAP.CheckableLinearLayout>
選擇代碼
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:state_checked="true">
<shape android:shape="rectangle">
<solid android:color="@color/main_gradient_end"/>
<corners android:radius="20dp"/>
</shape>
</item>
<item android:state_checked="true">
<shape android:shape="rectangle">
<stroke android:color="@color/main_gradient_end"
android:width="3dp"/>
<corners android:radius="20dp"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="@color/main_gradient_end"/>
<corners android:radius="20dp"/>
</shape>
</item>
<item android:drawable="@color/transparent"/>
</selector>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_gradient_start">#454444</color>
<color name="main_gradient_end">#BAB8B9</color>
<color name="transparent">#00000000</color>
</resources>
我該怎麼做才能在這兩種情況下相同的行爲?
2.1添加
<solid>
atributte現在是幾乎不存在的一個日子裏,我甚至不會用它,除非打擾你有具體的理由這樣做。 Google甚至不會在其操作系統分佈圖中顯示它。 http://developer.android.com/about/dashboards/index.html?utm_content=buffer07ca2&utm_source=buffer&utm_medium=twitter&utm_campaign=Buffer – blindstuff