我有一个带有 OnItemClickListener 和 OnItemLongClickListener 的列表视图。
在我的 listadapter 的 getView 方法中,我设置了一个带有 TransitionDrawable 作为背景的视图,接下来我将一个 OnTouchListener 应用到该视图,这样当用户按住视图并按住它时,他将看到转换发生。
问题是 OnTouchListener 必须返回 true,否则只会捕获 ACTION_DOWN 运动事件。但是通过返回 true,我的 OnItemClickListener 和 OnItemLongClickListener 不会被触发。
问题是如何既显示 TransitionDrawable 的动画又触发点击事件?
数组适配器的 getView(..):
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
convertView.setOnTouchListener(touchListener);
return convertView;
}
OnTouch监听器:
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;
}
};