Ответ 1
Я столкнулся с этой проблемой только сейчас. Вы должны установить LinearLayout для интерактивного использования. Вы можете сделать это в XML с помощью
android:clickable="true"
Или в коде с
yourLinearLayout.setClickable(true);
Я хочу использовать селектор для представления макета и изображения. Но он не работает для меня.
Когда я изменил изображение на кнопку с изображением или кнопку, он отлично работает. Любая помощь будет принята с благодарностью. Спасибо заранее.
здесь 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>
Я столкнулся с этой проблемой только сейчас. Вы должны установить LinearLayout для интерактивного использования. Вы можете сделать это в XML с помощью
android:clickable="true"
Или в коде с
yourLinearLayout.setClickable(true);
попробуйте это
<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
используйте идентификатор изображения вместо линейного макета и setclicklistener для самого изображения, он будет работать!
Для меня это помогло не присваивать атрибуту android:clickable
макету, а вместо него - ImageView. Я просто хотел, чтобы изображение было кликабельным, но не содержащим макет.
Вы должны изменить src
на background
или
ImageButton
до ImageView
и еще написать android:clickable="true"
в атрибутах ImageView.