开发者

selector not working with layout and image view

开发者 https://www.devze.com 2023-03-09 19:22 出处:网络
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 ad

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号