selector not working with layout and image view
I want to use selector for a layout and image view..But it is not working for me. When I changed image view to imagebutton or button, it works fine. Any help will be greatly appreciated.. Thanks in advance..
here is the xmls I used..<?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>
The layout 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"
开发者_如何学C android:textStyle="bold"
android:paddingTop="10dp"
android:src="@drawable/testselector"
android:layout_gravity="center_horizontal" />
</LinearLayout>
I ran into this problem just now. You'll have to set the LinearLayout to clickable. You can either do this in the XML with
android:clickable="true"
Or in code with
yourLinearLayout.setClickable(true);
try this
<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>
you can use your image instead of lastread_ok
& lastread_ok_selected
use the id of imageview instead of linear layout and setclicklistener for imageview itself, it will work!!
You have to change src
to background
or
ImageButton
to ImageView
and alse write android:clickable="true"
in ImageView attributes.
For me it helped to not assign the attribute android:clickable
to the layout but to the ImageView instead. I just wanted the image to be clickable though, not the containing layout.
setOnClickListener() for selectable components solved the problem
精彩评论