对于Recyclerview的item一些的简单操作
对于RecyclerView
的理解和listView的认识基本上是大同小异的,之前在listView的认识中我们知道了,条目的多种事件,例如:点击事件,长按点击事件,滑过事件,移动事件,等等。当然在RecyclerView
上面也能实现,只不过是实现的方法不一样。
添加分割线的使用addItemDecoration
添加各种颜色分割线的使用 :在drawable 的制作自己的分割线,之后在Style中将默认的分割线用自创的分割线替换掉,并且绑定就能使用,
添加页面上的头部(head and foot)的使用 在头部和脚部做成自己的页面就可以了在适配器里面将自己的三个页面统一在适配器里面调试并使用。
Listview Greadview 和瀑布流的使用的一些操作
Rcyclerview 的 使用三大 形式,这样
public class HomeActivity extends ActionBarActivity
{
private RecyclerView mRecyclerView;
private List<String> mDatas;
private HomeAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_recyclerview);
initData();
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mAdapter = new HomeAdapter());
}
protected void initData()
{
mDatas = new ArrayList<String>();
for (int i = 'A'; i < 'z'; i++)
{
mDatas.add("" + (char) i);
}
}
class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder>
{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
HomeActivity.this).inflate(R.layout.item_home, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position)
{
holder.tv.setText(mDatas.get(position));
}
@Override
public int getItemCount()
{
return mDatas.size();
}
class MyViewHolder extends ViewHolder
{
TextView tv;
public MyViewHolder(View view)
{
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
}
这是greadview 的实现主要在getItemOffsets
方法中,去判断如果是最后一行,则不需要绘制底部;如果是最后一列,则不需要绘制右边,整个判断也考虑到了StaggeredGridLayoutManager
的横向和纵向,所以稍稍有些复杂。最重要还是去理解,如何绘制什么的不重要。一般如果仅仅是希望有空隙,还是去设置item的margin方便
//mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));
- 1
- 2
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL));
- 1
/ 设置item动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
- 1