美文网首页
RecycleView的使用(一)

RecycleView的使用(一)

作者: Aaron96 | 来源:发表于2016-03-13 16:41 被阅读2576次

    最近,笔者花了很多时间学习了一些Google官方推荐的RecycleView的用法,发现相比于原来的ListView,RecycleView的功能实在是太强大,很值得大家去学习一下。

    基本的使用

    我们就不讲如何导入包什么的了吧,我们直接进入主题。

    xml
    <android.support.v7.widget.RecyclerView    
        android:id="@+id/recycleview"    
        android:layout_width="match_parent"    
        android:layout_height="wrap_content">
    </android.support.v7.widget.RecyclerView>
    

    我们在activity_main中添加以上这些代码,这里几乎与我们经常写的ListView 没有什么区别。

    adapter
    public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{    
      private List<String> dataLists = new ArrayList<>();       
    
        public MyAdapter(List<String> data){
              dataLists =data;
      }
       @Override    
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {       
             
           View view = View.inflate(parent.getContext(),R.layout.item_normal, null);        ViewHolder holder = new ViewHolder(view);        
          return holder;   
     }    
    @Override    
        public void onBindViewHolder(ViewHolder holder, int position) {            
      holder.mTextView.setText(dataLists.get(position));   
     }    
    @Override    
        public int getItemCount() {       
         return  dataLists == null ? 0 : dataLists.size();    
      }    
      
        public static class ViewHolder extends RecyclerView.ViewHolder {                                     
           public TextView mTextView;       
           public ViewHolder(View itemView) { 
               super(itemView);           
               mTextView = (TextView) 
               itemView.findViewById(R.id.item_normal_tv);   
         }   
     }
    }
    

    上面可以看出,Adapter里面规定我们必须使用ViewHolder来加载我们的Item界面。

    • onCreateViewHolder
    • onBindViewHolder

    这两个方法可以理解为是将原本ListView的getView()方法解体了,可以看见,我们在onCreateViewHolder里面绘制我们的View,然后再onBindViewHolder里面处理我们的数据,是不是感觉代码比我们的ListView少多了呢,哈哈。

    Activity
    private RecyclerView recyclerView;
    private List<String> stringList= new ArrayList()<>;
    ---------------------------------------------------------
    //随便添加一点数据....
    recyclerView = (RecyclerView) findViewById(R.id.recycleview);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    // mRecyclerView.setLayoutManager(new GridLayoutManager(this, 2));//这里用线性宫格显示 类似于grid view
    // mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, OrientationHelper.VERTICAL));
    recyclerView.setAdapter(new MyAdapter(stringList));
    

    简单的几步,我们的RecycleView就已经实现完了,还有两种的格式,大家可以自己去试一下,可以很方便的实现了GridView的效果。
    我们展示到我们的虚拟机上

    Paste_Image.png

    是不是就已经出现了呢,相比ListView,RecycleView的处理更加简单,并且更灵活好用,它将数据、排列方式、数据的展示方式都分割开来,因此可扩展度很高~

    相关文章

      网友评论

          本文标题:RecycleView的使用(一)

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