1

各行が ImageView で構成される ListView/GridView があるとします。さらに、各行にはパディングがあります。この場合、理想的には、リスト セレクターを一番上にしたいので、 を使用しますdrawSelectorOnTop="true"。リストセレクターが行の全領域をカバーすることを除けば、問題ありません。理想的には、リスト セレクターが ImageView の領域のみをカバーするようにしたいと考えています。以下は、私が話していることの例です。

左が理想の状態で、右が実際の状態です。

ここに画像の説明を入力

私が思いついた唯一の解決策は、高さ/幅が一致する ImageView の上に余分な「空の」ビューを追加し、その空のビューをセレクターとして使用することです。これを達成するための他の方法またはより良い方法があるかどうか疑問に思っていますか?

4

2 に答える 2

1

InsetDrawableをカスタム セレクターとしてカスタム セレクターとして使用するShapeDrawable

例えば:

drawable/my_selector.xml

<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/my_shape_drawable" 
    android:insetBottom="10dp"
    android:insetLeft="10dp" 
    android:insetRight="10dp" 
    android:insetTop="10dp"/>

drawable/my_shape_drawable.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/selector" />
</shape>

ImageViewsこれは、すべてが均一なサイズであることを前提としています。

于 2013-06-06T13:36:34.367 に答える