android - 如何为 ListView 中的项目设置 OnTouchListener

标签 android android-listview android-view

我想从我的 ListView 和 setOnTouchListener 中获取一个项目,以下是我的代码,但我无法正确设置它。

listView.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> parent, View selectedView,
                    int position, long id) {

            Log.d("ON ITEM CLICK...", " ON ITEM CLICK... "+ position);

            listView.getChildAt(position).setOnTouchListener(HorizontalListActivity.this);

            ViewHolder viewHolder =(ViewHolder)selectedView.getTag();

            viewHolder.ivThumbnail.setOnTouchListener(HorizontalListActivity.this);

            }
        });

我想要访问该项目的原因是我想将它拖到屏幕上。

有没有更好的方法来做我想做的事?

最佳答案

我遇到了同样的情况,找到了一些可能有用的东西,但我还没有时间去尝试。基本思想是像您一样使用 getChildAt 将触摸事件分派(dispatch)给 child 。你在 ListView 中监听触摸事件,如果你触摸了你感兴趣的 View ,就将触摸事件分派(dispatch)给它来处理它:

 MyControl control = ListViews.getChildAt(position));
 control.onTouchEvent(touchEvent);

关于android - 如何为 ListView 中的项目设置 OnTouchListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698055/

相关文章:

java - 如何修复向谷歌报告成就时的 'CLIENT_RECONNECT_REQUIRED' 问题

android - 来自谷歌排行榜的前 5 名

android - 所有Android广播Intent列表在哪里

Android:打开和关闭 ListView 滚动

android - 在服务上接收隐藏状态栏/进入全屏 Activity 事件

android - canvas.drawRect 如何绘制矩形

android - 使用 Android 内置的手势监听器和缩放监听器实现捏缩放和拖动

android - Phonegap Android 应用程序重新启动而不是恢复,尽管它没有被操作系统杀死

Android Textview平均分配水平方向

java - 引起的java.lang.UnsupportedOperationException : addView(View,layoutParams)在AdapterView中不受支持