学习RecyclerView

稍做记录
说明:
这是用来给自己回忆的,估计你们也看不太懂
有时间我再整理吧2018.7.15

28.May 明日之星——RecyclerView

学习内容

1、回收与复用View
2、setLayoutManager显示
3、ItemDecoration item如何分隔
4、ItemAnimator Item增加与删除动画效果

SimpleAdapter extends RecyclerView.Adapter<MyViewHolder(泛型)>{ inflater,context,data}

创建构造方法,context ,data,inflater
再写必要的方法

getItemCount(){
return data.getSize();
}
onBindViewHolder(holder , position){
holder.tv.setText(getData(position));
}
onCreateViewHolder(){
View view = mInflater.inflater(传入item布局R.layout.item,);
MyViewHolder viewHolder = new MyViewHolder(传一个View);
}
}

class MyViewHolder(与上面的一致) extends viewHolder
{

当前item所有控件textview

public MyViewHolder(View view){
super(view);
tv;
}
}
MainActivity
mAdapter = new SimpleAdapter(this,mDatas);
mR .setAdapter(mAdapter);
LinearLayoutManager  linearLayoutManager = new LinearLayoutManager(this);
mR.setLayoutManager (linearLayoutManager);

​​ 变身GridView

menu增加若干项

mR.setLayoutManager(new GridLayoutManager(this,3))

​​ 增删动画

SimpleAdapter
addData(int position){
mDatas.add(position,“wenben”);
notifyItemInserted(position);
}
setItemAnimator(new DefaultItemAnimator());
​​OnClick
SimpleAdapter

接口

public interface OnItemClickListener
{
void onItemClick(View view , int Position);
void onItemLongClick(View view , int Position);
}
private OnItemClickListener mOnItemClickListener;
public setOnItemClickListener(OnItemClickListener listener){
this.mOnItemClickListener =  listener;
}//供外部设置回调


   onBindViewHolder{
    if(mOnItemClickListener != null)
    holder.itemView.setOnClickListener..

.
mOnItemClickListener.onItemClick(holder.itemView,position)
}

//监听回调
mAdapter.setOnItemClickListener

​​瀑布流
copy
动态控制高度

private List<Integer> mH;
Adapter
mH = new ArrayList<Integer>();
for(int i = 0;i<mDatas.size();i++)
{
mH.add((int)(100+Math.random()*300));
}
onBind
LayoutParams lp = holder.itemView.getLayoutParams();
lp.height = mH.get(position);
holder.itemView.setLayoutParams(lp);

​​

​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值