带货直播源码,侧滑删除的相关代码 点击删除按钮:
mAdapter.setOnRightItemClickListener(new SwipeAdapter.onRightItemClickListener() { @Override public void onRightItemClick(View v, int position) { data.remove(position); mListView.setAdapter(mAdapter); Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); } }); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "item onclick " + position, Toast.LENGTH_SHORT).show(); } });核心代码
case MotionEvent.ACTION_MOVE: float dx = lastX - mFirstX; float dy = lastY - mFirstY; //确定滑动方向 if (mIsHorizontal == null) { if (!judgeScrollDirection(dx, dy)) { break; } } //情况二:一个Item的右边布局已经显示,这时候左右滑动另外一个item,那个右边布局显示的item隐藏其右边布局 if (mIsHorizontal) { if (mIsShown && mPreItemView != mCurrentItemView) { hiddenRight(mPreItemView); } if (mIsShown && mPreItemView == mCurrentItemView) { dx = dx - mRightViewWidth; } // 不能超过边界mRightViewWidth,scrollTo(x,0),向左移动为正,向右移动为负 if (dx < 0 && dx > -mRightViewWidth) { mCurrentItemView.scrollTo((int) (-dx), 0); } return true; } else { //情况三:一个Item的右边布局已经显示,这时候上下滚动ListView,那么那个右边布局显示的item隐藏其右边布局 if (mIsShown) { hiddenRight(mPreItemView); } } break;item的左滑和右滑是通过scrollTo(x,0)来实现的,向左移动x为正,向右移动x为负
dx为移动的距离
// 不能超过边界mRightViewWidth,scrollTo(x,0),向左移动为正,向右移动为负 if (dx < 0 && dx > -mRightViewWidth) { mCurrentItemView.scrollTo((int) (-dx), 0); }以上就是带货直播源码,侧滑删除的相关代码, 更多内容欢迎关注之后的文章