我正在使用一个适用于所有活动的选择器,因为您可以在下面看到它的XML。
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/active_date_horizontal_5_pressed" /> <!-- pressed -->
<item
android:state_focused="true"
android:drawable="@drawable/active_date_horizontal_5_pressed" /> <!-- focused -->
<item
android:drawable="@drawable/active_date_horizontal_5" /> <!-- default -->
除了一项活动外,它的工作并不荒谬。您可以在下面看到三个屏幕截图,其中选择器在前两个屏幕截图中正常工作,并且在最后一个屏幕截图中不起作用。
1)
2)
3)
这些是定制的GridViews,其中填充了自定义的BaseAdapter。 GridViews中的单元格具有Xml布局,其背景是选择器。有什么想法吗?
答案 0 :(得分:2)
我似乎解决了自己的问题。
您可以看到我应用了下面选择器的Xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:orientation="vertical"
android:background="@drawable/calendar_cell_selector" >
<TextView
android:id="@+id/txtWeeklyEventName"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/imgCornerWeekly"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txtWeeklyEventName"
android:layout_alignRight="@+id/txtWeeklyEventName"
android:src="@drawable/corner_orange"
android:visibility="visible" />
</RelativeLayout>
您可以看到RelativeLayout的背景是选择器,但TextView会填充整个布局,因此Android无法处理选择器。
因此,我从RelativeLayout中删除了背景并将其设置为TextView,它完全有效。
感谢我!