Подтвердить что ты не робот

Селектор не работает с макетом и изображением

Я хочу использовать селектор для представления макета и изображения. Но он не работает для меня. Когда я изменил изображение на кнопку с изображением или кнопку, он отлично работает. Любая помощь будет принята с благодарностью. Спасибо заранее.

здесь xmls я использовал..

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/bg" 
        />
    <!--<item

        android:drawable="@drawable/bg" 
        android:state_focused="true"/>
     When not selected, use white-->

    <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"
        android:textStyle="bold"
        android:paddingTop="10dp"
        android:src="@drawable/testselector"
        android:layout_gravity="center_horizontal" />
    </LinearLayout>
4b9b3361

Ответ 1

Я столкнулся с этой проблемой только сейчас. Вы должны установить LinearLayout для интерактивного использования. Вы можете сделать это в XML с помощью

android:clickable="true"

Или в коде с

yourLinearLayout.setClickable(true);

Ответ 2

попробуйте это

    <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 и l astread_ok_selected

Ответ 3

используйте идентификатор изображения вместо линейного макета и setclicklistener для самого изображения, он будет работать!

Ответ 4

Для меня это помогло не присваивать атрибуту android:clickable макету, а вместо него - ImageView. Я просто хотел, чтобы изображение было кликабельным, но не содержащим макет.

Ответ 5

Вы должны изменить src на background

или

ImageButton до ImageView и еще написать android:clickable="true" в атрибутах ImageView.