下面列出了android.widget.AbsListView#setOnTouchListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void setListView(AbsListView listView) {
if (-1 == this.indexOfChild(listView)) {
return;
}
this.listView = listView;
listView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float y = event.getY();
if (event.getAction() == MotionEvent.ACTION_MOVE) {
//手指往下滑,列表往下滚,
if ((y - lastYForListView) > touchSlop) {
//此时 ListView 接受了事件序列,但用户在下滑列表,
// 此时需要在该次事件序列下一个事件到达时再次检查是否需要截断 onInterceptTouchEvent
PullDownLinearLayout.this.requestDisallowInterceptTouchEvent(false);
lastYForListView = y;
}
}
return false;
}
});
}
@Override
public void setAbsListView(AbsListView listView) {
super.setAbsListView(listView);
if (mDecoratedBaseAdapter instanceof ArrayAdapter<?>) {
// fix #35 dirty trick !
// if ArrayAdapter we assume that items manipulation will come from it
((ArrayAdapter<?>)mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this);
}
mSwipeDismissListViewTouchListener = createListViewTouchListener(listView);
mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mSwipeDismissListViewTouchListener);
}
@Override
public void setAbsListView(AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setRecyclerListener(new RecycleViewListener());
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
if (mDecoratedBaseAdapter instanceof ArrayAdapter<?>) {
((ArrayAdapter<?>) mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this);
}
mSwipeDismissListViewTouchListener = createListViewTouchListener(listView);
mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mSwipeDismissListViewTouchListener);
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setOnHierarchyChangeListener(new HierarchyChangeListener());
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
if (mDecoratedBaseAdapter instanceof ArrayAdapter<?>) {
((ArrayAdapter<?>) mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this);
}
mSwipeDismissListViewTouchListener = createListViewTouchListener(listView);
mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mSwipeDismissListViewTouchListener);
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setOnHierarchyChangeListener(new HierarchyChangeListener());
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
if (mDecoratedBaseAdapter instanceof ArrayAdapter<?>) {
((ArrayAdapter<?>) mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this);
}
mSwipeDismissListViewTouchListener = createListViewTouchListener(listView);
mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mSwipeDismissListViewTouchListener);
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setOnHierarchyChangeListener(new HierarchyChangeListener());
}
@Override
public void setAbsListView(AbsListView listView)
{
super.setAbsListView(listView);
listView.setOnTouchListener(new NotificationSwipeDismissListViewTouchListener(listView, mCallback));
}