相同的选择器不适用于Android

时间:2013-01-30 12:07:22

标签: android selector

我正在使用一个适用于所有活动的选择器,因为您可以在下面看到它的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)First Screen Shot

2)Second Screen Shot

3)Last Screen Shot, Selector Does Not Work

这些是定制的GridViews,其中填充了自定义的BaseAdapter。 GridViews中的单元格具有Xml布局,其背景是选择器。有什么想法吗?

1 个答案:

答案 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,它完全有效。

感谢我!