나는 OnItemClickListener와 OnItemLongClickListener를 가진리스트 뷰를 가지고있다.android listview : longclicklistener를 사용한 셀 전환 드로어 블
내 listadapter의 getView 메소드에서 배경으로 TransitionDrawable을 사용하여 뷰를 설정 한 다음, OnTouchListener를 뷰에 적용하여 사용자가 뷰를 누르고 그 상태를 유지하면 전환이 발생하는 것을 볼 수 있습니다.
문제는 OnTouchListener가 true를 반환해야한다는 것입니다. 그렇지 않으면 ACTION_DOWN motionevent 만 캡처됩니다. 그러나 true를 반환하면 내 OnItemClickListener 및 OnItemLongClickListener가 시작되지 않습니다.
질문은 어떻게 둘 다 TransitionDrawable의 애니메이션을 표시하고 클릭 이벤트를 발생시킬 수 있습니까? ArrayAdapter와의
의 getView (..) :
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
convertView.setOnTouchListener(touchListener);
return convertView;
}
OnTouchLIstener :
OnTouchListener touchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
TransitionDrawable transition = (TransitionDrawable)v.getBackground();
if(event.getAction() == MotionEvent.ACTION_DOWN) {
transition.startTransition(ViewConfiguration.getLongPressTimeout());
return true;
}
else {
transition.resetTransition();
}
return false;
}
};