반응형
안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
안드로이드 ListView를 사용하다 보면 setOnItemClickListener가 정상적으로 동작하지 않을 때가 있습니다.
네... 바로 제가 어제 그랬습니다 ㅎㅎ
제대로 동작하지 않는 이유는 여러가지가 있겠지만 대표적으로,
아래 코드처럼 ListView의 아이템으로 들어가는 xml에서
Button이나 ImageButton이 있으면 포커스를 이놈들이 가져가서
아이템 클릭 리스너가 제대로 동작하지 않을 수 있다고 하네요~
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="72dp">
<TextView style="@style/employee_row"
android:id="@+id/employeeName"/>
<TextView style="@style/employee_row"
android:id="@+id/employeeFee"/>
<ImageButton
android:contentDescription="@string/noImage"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00000000"
android:src="@drawable/ic_keyboard_arrow_right_black_48dp"/>
</LinearLayout>
해결방법은 Button대신 TextView로 ImageButton 대신 ImageView로 대체하면 ↓
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="72dp">
<TextView style="@style/employee_row"
android:id="@+id/employeeName"/>
<TextView style="@style/employee_row"
android:id="@+id/employeeFee"/>
<ImageView
android:contentDescription="@string/noImage"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00000000"
android:src="@drawable/ic_keyboard_arrow_right_black_48dp"/>
</LinearLayout>
setOnItemClickListener 가 정상 동작하는 것을 확인할 수 있습니다.
이상입니다!
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 플로팅 액션 버튼 스피드 다이얼 floating action button speed dial 만들기 (0) | 2017.03.17 |
---|---|
안드로이드 확장 리스트뷰 ExpandableListView 사용법 - 중첩 리스트 뷰 (6) | 2017.03.17 |
안드로이드 ListView OnItemClickListener, OnItemLongClickListener 구분 (7) | 2017.03.11 |
안드로이드 back 버튼 2번 터치 시 앱 종료 (0) | 2017.03.11 |
안드로이드 플레이스토어 연동 하는 법 (0) | 2017.03.11 |