OnItemClickListener 和自定义 OnTouchListener

4
我有一个视图列表,希望能够在单击视图时触发OnItemClickListener。但同时我也想能够滑动每个视图并执行自定义操作。这意味着我必须在ArrayAdapter中为每个视图创建自己的OnTouchEvent。
有没有办法让它们一起工作,以便我可以轻松地执行自定义操作,如滑动项目和单击项目?
2个回答

3

似乎他们通过自己编写所有实现来解决这个问题。所有内容都是定制构建的。这个问题似乎没有简单的解决方案。 - Michael Muesch
如果平台中没有内置模型来完成此任务,那么你就必须自己动手了。 - Aswin Kumar

1
你的类可以实现View.OnTouchListener和AdapterView.OnItemClickListener两个接口。
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if(motionEvent.getAction() == MotionEvent.ACTION_UP){
        Log.d(TAG, "ontouch: UP");

     **// Here you can figure if it was simple item click event.
        // We return false only when user touched once on the view. 
        // this will be handled by onItemClick listener.**

        if(lastAction == -1){
            lastAction = MotionEvent.ACTION_UP;
            view.clearFocus();
            return true;
        }
        return false;
    }
    else if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
        Log.d(TAG, "ontouch: DOWN");
        return false;
    }
    else {
        // This is all action events. 
        lastAction = -1;
        return true;
    }
}



@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     // We come here after onTouch event figured out that its a simple touch event and needs to be handled here.
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接