美文网首页
关于RecycleView的使用笔记

关于RecycleView的使用笔记

作者: 丶奏 | 来源:发表于2017-11-18 16:06 被阅读0次

    RecyclerView是Google在API 21下support.V7包里的控件,相对于ListView或GridView,灵活度更高

    RecyclerView的布局方式

    LinearLayoutManager:线性布局,横向或者纵向滑动列表
    GridLayoutManager:表格布局
    StaggeredGridLayoutManager:流式布局
    

    RecycleView的高度展开 在RecycleView

    @Override
    protected void onMeasure(intwidthMeasureSpec,intheightMeasureSpec) {
    
        intexpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
    
        super.onMeasure(widthMeasureSpec, expandSpec);
    
    }
    

    RecycleView高度展开并被其他同向可滑动布局嵌套时,可设置让其可惯性滑动

    rv.setNestedScrollingEnabled(false);
    

    如果确定每个item高度都是固定的时,可以使用以下属性提高性能

    rv.setHasFixedSize(true);
    

    横向的ListView

    mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    

    默认动画效果

    rv.setItemAnimator(newDefaultItemAnimator());
    

    RecycleView添加分割线

    //一般实现方式
    rv.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL_LIST));
    //也可以通过在item添加一个在底部的View实现
    

    添加多种布局 下面举个栗子,要实现更多布局也只需要加个参数判断就可以了

    //在RecycleView的Adapter中可以通过实现getItemViewType方法
    @Override
    public int getItemViewType(int position) {
         if(mHeadView == null) return TYPE_NORMAL;
         if(position == 0) return TYPE_HEADER;
         return TYPE_NORMAL;
     }
    //然后可以在onCreateViewHolder中根据viewType启用不同布局
    @Override
    public MineHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if(viewType == TYPE_HEADER){
            return new HeadViewHolder(mHeadView);
        }else{
            return new ItemViewHolder(mItemView);
        }
        return holder;
    }
    //最后在onBindViewHolder实现你对每个布局的操作
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        if(holder instanceof  HeadViewHolder){
            //对头布局的操作
            ...
        }else{
            //对Item操作
            ...
        }
    }
    
    

    本人Android小白一枚,如有错误,望指正

    相关文章

      网友评论

          本文标题:关于RecycleView的使用笔记

          本文链接:https://www.haomeiwen.com/subject/goijvxtx.html