android - 滑动时获取 ListView 的行位置

标签 android listview gesture-recognition swipe-gesture

我知道在 here 之前有人问过这类问题. 我已经尝试了两种手势检测器:

 wholelistview.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                if (gestureDetector.onTouchEvent(event)) {
                    return true;
                }
                return false;
            }
        });

仅检测滑动(此处无法获取行位置)。

在getview中类似:

public View getView(int position, View convertView, ViewGroup parent) {
//other stuff

convertview.setOnTouchListener(same as above);

} 

无法检测到滑动。

有什么解决办法吗??? 我只想要进行滑动的行位置。

最佳答案

hanry 你得到了什么样的错误?我已经实现了它并且它工作得很好。但是我没有存储元素的位置,而是存储了 View 持有者,它在其他元素中也具有模型属性。请记住,您必须检查 convertview 是否不为空。看一下代码:

public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;

    Model m = filter.subItems.get(position);
    if(m != null)
    {
        if (convertView == null) {
            LayoutInflater inflator = context.getLayoutInflater();
            view = inflator.inflate(R.layout.rowlayout, null);
            ViewHolder viewHolder = new ViewHolder();
            viewHolder.position = position; - here you can put your position.
            view.setOnTouchListener(this.listener);
            //assign whatever you like to the viewHolder - in most cases the model and inlated controls and then assign 
        } else {
            view = convertView;
        }
        view.setTag(viewHolder);
    }

然后

public boolean onTouch(View v, MotionEvent event) {
    ViewHolder viewHolder = ((ViewHolder) v.getTag());
}

希望有帮助。 ps:如果您对 View 持有者和标签一无所知,我建议您查看 there . Frankenstein 提供的链接中描述了我的方法。

关于android - 滑动时获取 ListView 的行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8383040/

相关文章:

android - 获取新数据后保持 ListView 的滚动位置

android - 如何创建适用于深色和浅色主题的 Android 操作栏?

java - 如何在相机捕获的图像上叠加图像或 View

Android Firebase Rest API 身份验证

PHP修改从数据库检索的值(编码和特殊字符问题)

android - ListView 中一行的背景图像

android - List.Remove 始终删除 ListView 的最后一项

用于网络摄像头手势识别的 C# 或 JAVA 库?

android - 如何在 Android 中访问字母识别器 API?

ios - 在另一个手势识别器触发时暂时禁用一个手势识别器