1

カスタム ビューでのセレクターの実装に問題があります。過去1時間検索しましたが、解決策が見つかりませんでした。イメージビュー、いくつかのテキストビュー、および 9 つのパッチ背景を含むカスタム ビューがありますが、問題は、それが押された状態のときに、セレクターの色がイメージ ビューをカバーしていないことです。

ここに画像の説明を入力

実装では、レイアウトに背景セレクターを使用しています。押された状態と押されていない状態で 9 パッチ イメージを変更し、リストビューでデフォルトのセレクターを無効にします。

より良い解決策はありますか?私はグーグルプレイで見る、青いセレクターがすべてのビューをカバーしており、それが私が望むものです。

xml の場合、

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/touch_selector"
    android:orientation="horizontal"
    android:padding="16dp" >

    <ImageView />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView />

        <TextView />
    </LinearLayout>

</LinearLayout>

そしてタッチセレクターについて

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/card_background_pressed" android:state_focused="true"/>
    <item android:drawable="@drawable/card_background_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/card_background_white" android:state_focused="false" android:state_pressed="false"/>

</selector>

card_background は 9 パッチ イメージです。

編集 :

これは google play の例です。

グーグルプレイ

4

1 に答える 1

2

受け入れられたが正しくありません。セレクターで 9 パスを使用することは可能です。<nine-patch> を使用するだけです。このようなもの:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <nine-patch 
            android:src="@drawable/marker"/>
    </item>
    <item>
        <shape>
            <solid android:color="#000000" />
        </shape>
    </item>
</selector>
于 2014-06-27T15:28:12.010 に答える