web-dev-qa-db-ja.com

セレクターがレイアウトと画像ビューで機能しない

レイアウトと画像ビューにセレクターを使用したいのですが、うまくいきません。画像ビューをimagebuttonまたはbuttonに変更すると、正常に動作します。どんな助けでも大歓迎です..事前に感謝します..

これが私が使用したxmlです。

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item
        Android:state_pressed="true"
        Android:drawable="@drawable/bg" 
        />
    <item
        Android:drawable="@drawable/bg_01" />
</selector> 

レイアウトxml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:orientation="vertical"
    Android:layout_height="fill_parent">
    <ImageButton
        Android:layout_width="100dp"
        Android:layout_height="50dp"
        Android:text="layout tester"
        Android:textColor="#000000"
        Android:textStyle="bold"
        Android:paddingTop="10dp"
        Android:src="@drawable/testselector"
        Android:layout_gravity="center_horizontal" />
    </LinearLayout>
18
subair_a

私はちょうど今この問題に遭遇しました。 LinearLayoutをクリック可能に設定する必要があります。 XMLでこれを行うことができます

Android:clickable="true"

またはコードで

yourLinearLayout.setClickable(true);
62
Rockmaninoff

これを試して

    <selector
  xmlns:Android="http://schemas.Android.com/apk/res/Android">
  <item Android:state_focused="true" 
          Android:state_pressed="false" 
          Android:drawable="@drawable/lastread_ok" />
    <item Android:state_focused="true" 
          Android:state_pressed="true"
          Android:drawable="@drawable/lastread_ok" />
    <item Android:state_focused="false" 
          Android:state_pressed="true"
      Android:drawable="@drawable/lastread_ok_selected" />
    <item Android:drawable="@drawable/lastread_ok" />
</selector>

lastread_ok&lastread_ok_selectedの代わりに画像を使用できます

4
Niranj Patel

線形レイアウトの代わりにimageviewのIDを使用し、imageview自体にsetclicklistenerを使用すると、機能します!!

1
skygeek

srcbackgroundに変更する必要があります

または

ImageButtonからImageViewに、またAndroid:clickable="true"inImageView属性。

0
zafar

私にとっては、属性Android:clickableをレイアウトではなく、ImageViewに割り当てるのに役立ちました。ただし、含まれているレイアウトではなく、画像をクリック可能にしたかっただけです。

0
olik79