滚动网格视图时如何避免onitemclick

时间:2016-06-02 07:19:29

标签: android

我在我的应用程序中使用了gridview,我已经实现了dispatchTouchEvent以避免滚动gridview。

public boolean dispatchTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }
    return super.dispatchTouchEvent(ev);
}

但是当我滚动gridview时,它有时会在onItemClick中获得一个事件。我该如何避免这个问题?

2 个答案:

答案 0 :(得分:0)

您可以在onScrollListener()上使用GridView,在onScrollStateChanged()方法中,您可以管理boolean来检查视图是否在滚动,代码将是这样的,

在类级别声明boolean,其值为false

boolean isScrolling = false;

然后将onScrollListenerGridView一起使用,例如:

gridView.setOnScrollListener(new OnScrollListener() {

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        // TODO Auto-generated method stub
         if(scrollState == 
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
            int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            if(scrollState == SCROLL_STATE_TOUCH_SCROLL){
                isScrolling = true;
            } else if(scrollState == SCROLL_STATE_IDLE){
                isScrolling = false;
            }
        }
    }
});

然后在onItemClick()检查isScrolling以允许点击与否,

答案 1 :(得分:0)

在适配器的父布局上设置此属性:

class Person {
   class Enums {
      enum Gender {
         ...
      }
      ...
   }
   Enums.Gender Gender {get;set;}
   ...
}