-
继承Adapter 创建ViewHolder 构造函数传递参数进来,LayoutInflater用于得到布局 getItemCount()返回list大小 onCreateViewHolder()创建刚刚给的MyViewHolder(布局view) 在ViewHolder传入的View后,初始化控件,设置属性 onBindViewHolder()中给holder中控件赋值 回到Activity中给RecylerView设置layoutmanager(linear 或者grid)查看全部
-
使用这时RecylerView分割线 .addItemDecoration(),增加一个类查看全部
-
插入Item时要调用NotifyItemInsert和NotifyItemRemove两个方法。不是Notifysetdatachanged。holder.setLayoutPosition动态获取Item的位置。还有RecycleView没有为item设置监听事件。查看全部
-
用holder.getLayoutPosition()来获取当前屏幕上的位置查看全部
-
RecycleView 设计思想: 不关心内部的item是否显示在正确的位置,如何显示<-----LayoutManager(设置LinearLayoutManager,GridLayoutManager) 不关心item间如何分隔<--------ItemDecoration(ListView可以通过Divider来设置) 不关心item增加与删除的动画效果<------ItemAnimator(可实现其子类) 仅仅关注如何回收与复用view 属于一个插件式的架构,通过三个类的组合来实现需求 相关的重要类: Adapter(自己的适配器) ViewHolder(强制使用) LayoutManager ItemDecoration(分隔效果) ItemAnimator(动画效果) RecyclerView能实现: 依赖于LayoutManager的设置 1、Just like ListView(显示传统ListView的风格) 2、Just like GridView(显示传统GridView的风格) 3、横向ListView 4、横向GridView 5、瀑布流 依赖于ItemAnimator的设置 6、定制Item增加与删除动画查看全部
-
动画效果查看全部
-
11111查看全部
-
你想要控制其显示的方式,请通过布局管理器LayoutManager 你想要控制Item间的间隔(可绘制),请通过ItemDecoration 你想要控制Item增删的动画,请通过ItemAnimator查看全部
-
Xuexi查看全部
-
挺有用的查看全部
-
hjjj查看全部
-
摘自评论区
实现ListView
AS里面要添加RecyclerView的库,需要找V7版本的,如图
1.思路
布局使用RecyclerView,然后为其创建一个Adapter,使用LinearLayoutManager设置成ListView
使用github的开源类DividerItemDecoration来实现自定义item之间的分割线
2.布局
<android.support.v7.widget.RecyclerView
……
2.RecyclerView
mRecyclerView = findViewById(R.id.id_recyclerview);
3.创建Adapter
MyRecyclerViewAdapter extends RecyclerView.Adapter<MyViewHolder> {
(1)构造函数
public MyRecyclerViewAdapter(Context context, List<String> datas) {
this.mContext = context;
this.mDatas = datas;
this.mInflater = LayoutInflater.from(context);
}
(2)onCreateViewHolder需要inflate布局文件并返回ViewHolder
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mInflater.inflate(R.layout.simple_textview, parent, false);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
(3)onBindViewHolder()为ViewHolder的view初始化
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.textView.setText(mDatas.get(position));
}查看全部 -
RecyclerView仅仅关注如何回收和复用View item的位置通过LayoutManager item间的分隔通过ItemDecoraction item增加与删除效果通过ItemAnimator查看全部
-
如果调用的是适配器的notifyInsertChanged(),则没有刷新全部的item,所以可能照成位置的的不正确,可以通过viewHolder的getLayoutPosition()来获取item的位置。 由于RecyclerView没有提供点击和长按的监听事件,则需要自己在MyAdapter中使用接口回调的方式添加相应的监听器,具体步骤: 1.申明一个接口,里面提供相应的方法。 2.定义一个类级别的接口对象。 3.定义一个set方法用于外部传递接口变量。 4.在onBindViw方法中调用。查看全部
-
DividerItemDecoration下载地址查看全部
举报