美文网首页
RecycleView系列之(一)— 简单使用

RecycleView系列之(一)— 简单使用

作者: d41f12d62517 | 来源:发表于2019-10-24 15:40 被阅读0次

    参考文章</br>
    https://www.jianshu.com/p/f0b28e26ff0e

    最近在公司做的主要项目都是对外 SDK 的开发,对界面的开发做得算是比较的少了。为了不对界面生疏,有时候也还会重新看看界面的一些实现方式。
    Android开发中UI界面离不开列表。从早期的ListView,到现在常用的RecyclerView。都是实现里表的控件。现在ListView应该算是用得比较少了,就重要来回顾一下RecyclerView怎么使用。

    依赖RecyclerView库

        implementation 'androidx.recyclerview:recyclerview:1.1.0-beta05'
    

    编写 Adapter

    简单的例子就在 Adapter 中创建内部类 ViewHolder。内容比较简单,直接看Adapter代码吧。

    public class RecyclerTestAdapter extends RecyclerView.Adapter<RecyclerTestAdapter.VH> {
    
        private List<String> data;
    
        public void setData(List<String> data) {
            this.data = data;
        }
    
        @NonNull
        @Override
        public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_item_rv, parent,false);
    
            return new VH(view);
        }
    
        @Override
        public void onBindViewHolder(@NonNull VH holder, int position) {
    
            holder.mTvItem.setText(data.get(position));
    
        }
    
        @Override
        public int getItemCount() {
            return data != null ? data.size() : 0;
        }
    
        class VH extends RecyclerView.ViewHolder{
    
            public TextView mTvItem;
    
            public VH(@NonNull View itemView) {
                super(itemView);
                mTvItem = itemView.findViewById(R.id.tv_item);
            }
        }
    
    }
    

    在创建自定义的Adapter的时候,主要需要复写 onCreateViewHolder 、 onBindViewHolder 、 getItemCount 。

    调用

    最后编写好 Adapter 之后,就是使用了。RecyclerView和ListView的使用还是不一样的,老样子程序员直接看代码。

            LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
            recyclerView.setLayoutManager(layoutManager);
    
            RecyclerTestAdapter recyclerTestAdapter = new RecyclerTestAdapter();
            recyclerView.setAdapter(recyclerTestAdapter);
    
            ArrayList<String> datas = new ArrayList<>();
    
            for (int i = 0; i < 20; i++) {
                datas.add("第" + i);
            }
    
            recyclerTestAdapter.setData(datas);
            recyclerTestAdapter.notifyDataSetChanged();
    

    RecyclerView 相对 ListView 来说多出了一个 LayoutManager 。一个布局管理器,这个就是决定了列表的布局样式。
    LinearLayoutManager : 线性布局管理器,和之前的 ListView 样式类似。为什么说类似,因为LinearLayoutmanager能实现的功能比ListView 要多,但是他们都是线性之类的样式。
    GridLayouManager : 网格布局,其实LinearLayoutManager 配置好之后也可以实现网格布局的样式。
    StaggeredGridLayoutManager : 分散式列表布局, 通俗来说就是可以实现瀑布流,可以实现item的不同高度的网格样式。
    LayoutMananger 后续在整理文章总结一下,这里就不展开了。

    总结

    简单的看,其实RecyclerView 需要写的代码还是很多的。不慌,Google之所以出RecyclerView就是打造一个可以高度定制话的滚动控件。早期要是在使用ListView 的时候确实发现实现很多效果,是相当麻烦的。在项目中我们是需要对RecyclerView进行封装的。

    相关文章

      网友评论

          本文标题:RecycleView系列之(一)— 简单使用

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