- 
            
            设置RecyclerView 的间隔代码示例 RecyclerView.addItemDecoration(new RecyclerView.ItemDecoration(){ @override public void getItemOffsets(Rect outRect,View view , RecyclerView parent, RecyclerView.State state){ GridLayoutManager.LayoutParams lp = (GridLayoutManager.LayoutParams) view.getLayoutParams(); int spanSize = lp.getSpanSize(); int spanIndex = lp.getSpanIndex(); outRect.top = 20; if(spanSize != gridLayoutManager.getSpanCount()){ if(spanIndex ==1){ outRect.left = 10;}else{ outRect.right=10;} } } }); 查看全部
- 
            
            GridLayoutManager.SpanSizeLookup的getSpanSize(int position)方法根据position 配个 RecyclerView的Adapter的getItemViewType(position)方法得到对应position的View类型,进而决定返回该View所应占用的SpanSize的大小: public int getSpanSize(int position){ int type = mRecyclerView.getAdapter().getItemViewType(position); if(type ==DataModel.TYPE_THREE){ return gridLayoutManager.getSpanCount();} else { return 1;} } 查看全部
- 
            
            GridLayoutManager中的setSpanSizeLookup(GridLayoutManager.SpanSizeLookup)方法可以根据position返回每个Item占用几个Span;GridLayoutManager.SpanSizeLookup.getSpanSize(int position) 查看全部
- 
            
            GridLayoutManager示例实现Grid与List混排 查看全部
- 
            
            调试布局的时候,在开发者选项中可以打开显示布局边界 查看全部
- 
            
            多种ViewHolder创建使用示例 查看全部
- 
            
            配合三种Item布局,创建三种ViewHolder 查看全部
- 
            
            技能点:TextView中用tools:text="",指定的text属性值,在布局预览中可以看到,但是在程序运行时是看不到的,达到预览的效果 查看全部
- 
            
            创建三种类型的ItemView布局 查看全部
- 
            
            RecyclerView 的Adapter中的getItemViewType(int position)代码示例 查看全部
- 
            
            重点: 分配好getItemViewType(int position)中的Type; type只需要时一个数字即可,不一定是连续的,但必须是唯一的 查看全部
- 
            
            与ListView的区别 查看全部
- 
            
            RecyclerView.Recycler: 多个RecyclerView共用一个RecycleredPool, RecycleredPool为RecyclerView的静态成员变量 配置缓存Size 查看全部
- 
            
            RecyclerView.Recycler: RecyclerView通过内部类Recycler中的Map缓存了Holder 查看全部
- 
            
            RecyclerView.Holder 在RecycleView中保存View,包装了View; 与ListView不同,ListView的cache中保存的是View,而RecyclerView的cache中保存的Holder,在Holder中包装了一个View; Holder中保存着Type,Position,是否需要被缓存的Flag标志等信息 查看全部
- 
            
            getItemType: 遍历缓存中的Holder,如果Type与所需要的一致就返回Holder 查看全部
举报
 
             
        