【问题标题】:list view position in on touch even returning 0 always触摸时的列表视图位置,甚至总是返回 0
【发布时间】:2025-12-09 12:35:01
【问题描述】:

以下是我的代码: 但我得到的 pos 值为 0。 请帮忙

 public boolean onTouch(View view, MotionEvent motionEvent) { 
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
                pos = listView.pointToPosition((int) motionEvent.getX(), (int) motionEvent.getY());
                view.startDrag(null, shadowBuilder, view, 0);
                return true;
            }
}

【问题讨论】:

    标签: android android-listview touch-event


    【解决方案1】:

    按照以下应用中所示进行更改

    DragShadowBuilder shadowBuilder;
    public boolean onTouch(View view, MotionEvent motion)
           if (motionEvent.getAction() == Motion.ACTION_DOWN) {
                 shadowBuilder = new View.DragShadowBuilder(view);
                 pos = listView.pointToPosition((int) motion.getX(), (int) motion.getY());
                 Toast.makeText(getApplicationContext(),"Pos is:"+pos,Toast.LENGTH_SHORT).show();
                 view.startDrag(null, shadowBuilder, view, 0);
                 return false;
           }
    }
    

    【讨论】: