RecyclerView 上次写的点击事件,在listview里面还有一个长按事件,我们这里也可以写长安事件,方法差不多,看代码。
//该方法是为了实例化listrner,相当于setOnClickListener
public void setOnItemLongClickListener(OnItemLongClickListeners listener){
mOnItemLongClickListeners = listener;
}
//定义接口
public interface OnItemLongClickListeners{
void onItemLongClick(View view,int position);
}
@Override
public boolean onLongClick(View v) {
Integer position = (Integer) v.getTag();
if (position!=null) {
if (mOnItemLongClickListeners!=null) {
mOnItemLongClickListeners.onItemLongClick(v,position);
}
}
return true;//注意一下 返回true短时点击就没作用了
}
方法和之前的基本一致,有几个地方需要注意一下,设置监听别忘了,不然没有效果,还有就是最后return哪里 一定注意 返回TRUE代表短时间点击事件没有作用,如果是false代表短时间点击还有作用,这样就会造成冲突,长安事件响应后另一个也响应。所以这里需要注意一下。
RecyclerView 滚动事件的监听
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (!recyclerView.canScrollVertically(-1)) {//到顶部
Toast.makeText(Main4Activity.this, "当前是顶部", Toast.LENGTH_SHORT).show();
} else if (!recyclerView.canScrollVertically(1)) {//到底部
pageIndex++;
Toast.makeText(Main4Activity.this, "下一页" + pageIndex, Toast.LENGTH_SHORT).show();
}
}
});
这样可以实现上滑加载,但是没有动画效果,如果你想有一个好看的动画效果,还想简单,那么我给你推荐一个啊很简单的动画效果实现简单好用,动画效果还多。
RecycleView项之间的距离
public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpaceItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
if(parent.getChildPosition(view) != 0)
outRect.top = space;//可以上下左右
}
}
使用:
SpaceItemDecoration spaceItemDecoration = new SpaceItemDecoration(200);
mRecyclerView.addItemDecoration(spaceItemDecoration);
具体使用丢个链接吧ItemDecoration分割线
还有动画,单个更新全部更新
网友评论