0

以下の 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つの活動を除いて、それはばかげて機能しません。以下の 3 つのスクリーンショットを確認できます。最初の 2 つのスクリーンショットではセレクターが正常に機能し、最後のスクリーン ショットでは機能しません。

1)最初のスクリーンショット

2)2 番目のスクリーンショット

3)最後のスクリーン ショット、セレクターが機能しない

これらは、カスタマイズされた BaseAdapter で満たされたカスタマイズされた GridViews です。GridViews のセルには、その背景がセレクターである Xml レイアウトがあります。何か案は?

4

1 に答える 1

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 に設定すると、完全に機能します。

私に感謝します!

于 2013-01-30T12:34:11.953 に答える