设置item的间距
- 先新建一个java文件
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpacesItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
//设置item之间的间距(上下左右)
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
//设置item与parent的间距
if (parent.getChildLayoutPosition(view) == 0)
outRect.top = space;
}
}
- 在Activity添加代码
int space = 50; //间距
recyclerView.addItemDecoration(new SpacesItemDecoration(space));
定义间距为50,调用addItemDecoration方法设置间距
item的添加与删除
添加
在Adapter添加代码
public void addData(int position, String s) {
//在list中指定位置(position)添加item:String对象s
mList.add(position,s);
//添加动画
notifyItemInserted(position);
}
- 在外面的Activity调用
//指定添加item的位置为0,添加对象s
String s = "abc";
adapter.addData(0,s);
删除item
- 在Adapter添加代码
public void removeData(int position) {
//删除子项
mList.remove(position);
//删除动画
notifyItemRemoved(position);
//整体刷新
notifyDataSetChanged();
}
- 在外面的Activity调用
//指定删除的ietm位置
int position = 0;
adapter.removeData(position);
Activity中对item进行点击监听
在适配器里边的设置点击事件,直接做一个监听就行了,有时候我们想在Activity中设置监听,就要写多几行代码了。
- 首先适配器里边加入代码:
private OnitemClick onitemClick; //定义点击事件接口
//定义设置供外部调用的点击事件监听的方法
public void setOnitemClickLintener (OnitemClick onitemClick) {
this.onitemClick = onitemClick;
}
//定义一个点击事件的接口
public interface OnitemClick {
void onItemClick(int position);
}
public void onBindViewHolder(final ViewHolder holder, final int position){
final note_list note_list= mList.get(position);
//给text设置点击监听
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
//实现点击事件接口
public void onClick(View v) {
onitemClick.onItemClick(position);
}
});
}
- 在Activity加入代码:
//adapter是适配器的一个对象
adapter.setOnitemClickLintener(new MyAdapter.OnitemClick() {
@Override
public void onItemClick(int position) {
//这里写逻辑
}
});