Android 5.0 新特性之RecyclerView

Android 5.0后(21)  Google新推出了一个新的组件  RecyclerView  这个控件是来代替 ListView  GirdView等 控件的  省去了ListView原本需要程序员做的优化(其实我内心是抗拒的,你都省了,还要我们程序员干什么-、-),既然能省事,效率也高,也必须得学习一下。

使用方法:

先定义xml文件 

 <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/lv"
            ></android.support.v7.widget.RecyclerView>
和listview一样简单的定义即可  有其他需求另行定义

在Java代码中实例化RecyclerView  设置它的LayoutManager 和 adapter 

LinearLayoutManager manager = new LinearLayoutManager(this);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        lv.setLayoutManager(manager);
        lv.setAdapter(new MyAdapter());

其中LayoutManager 提供了 三种manager  

LinearlayoutManager 、 GirdLayoutManager 、 StaggeredGridLayoutManager  

线性   九宫格 和 瀑布流布局管理器

其中还可以设置item增加和删除时的动画  lv.setItemAnimator设置动画  


RecyclerView的 adapter 不再使用 BaseAdapter   而使用RecyclerView中的Adapter  

 class MyAdapter extends RecyclerView.Adapter<MyAdapter.ListHolder>{
        @Override
        public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) {   //返回一个ViewHolder 对象  
            View view = View.inflate(MainActivity.this,R.layout.content_main,null);
            return new ListHolder(view);
        }

        @Override
        public void onBindViewHolder(ListHolder holder, int position) {  //绑定数据 
                holder.setData(position);
        }

        @Override
        public int getItemCount() {
            return 50;
        }

        class ListHolder extends RecyclerView.ViewHolder{

            TextView txt;
            public ListHolder(View itemView) {
                super(itemView);
                txt = (TextView) itemView.findViewById(R.id.txt);
            }
            public void setData(int position){
                txt.setText("哈哈哈"+position);
            }
        }
    }
这样就可以了  

RecyclerView不需要以前那样 复用ConTentView     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值