我在我的应用程序中使用了gridview,我已经实现了dispatchTouchEvent以避免滚动gridview。
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_MOVE) {
return true;
}
return super.dispatchTouchEvent(ev);
}
但是当我滚动gridview时,它有时会在onItemClick中获得一个事件。我该如何避免这个问题?
答案 0 :(得分:0)
您可以在onScrollListener()
上使用GridView
,在onScrollStateChanged()
方法中,您可以管理boolean
来检查视图是否在滚动,代码将是这样的,
在类级别声明boolean
,其值为false
boolean isScrolling = false;
然后将onScrollListener
与GridView
一起使用,例如:
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;}
...
}