Android-support-v7-RecyclerView的使用

v7包提供了优化的后的ListView(RecyclerView),这篇文章主要是讲一下这个新控件的使用方法,不多说直接上代码
activity代码

import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;

public class MainActivity extends AppCompatActivity{
    private RecyclerView recyler_listview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 拿到RecyclerView
        recyler_listview = (RecyclerView)findViewById(R.id.recyler_listview);
        //设置LinearLayoutManager
        //recyler_listview.setLayoutManager(new LinearLayoutManager(this));
        //        recyler_listview.setLayoutManager(new GridLayoutManager(this, 3));
        recyler_listview.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL));
        //设置ItemAnimator
        recyler_listview.setItemAnimator(new DefaultItemAnimator());
        // 设置固定大小
        recyler_listview.setHasFixedSize(false);
        RecyAdapter recyAdapter = new RecyAdapter(this, list);
        recyler_listview.setAdapter(recyAdapter);
    }
}

import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;


public class RecyAdapter extends RecyclerView.Adapter<RecyAdapter.ViewHolder> {
    private Context mContext;
    private List<ItemBean> mData;
    DisplayImageOptions options = new DisplayImageOptions.........
    public RecyAdapter(Context mContext, List<ItemBean> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // 给ViewHolder设置布局文件
        View v = LayoutInflater.from(mContext).inflate(R.layout.itemlayout, parent, false);
        return new ViewHolder(v);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // 给ViewHolder设置元素
        holder.textView.setText(mData.get(position).text);
        holder.textView.setHeight(50 + new Random().nextInt(100));
//        holder.card_view.setPadding(0, new Random().nextInt(100), 0, new Random().nextInt(100));
//        holder.card_view.setMinimumHeight(25 + new Random().nextInt(25));
//        int resId = mContext.getResources().getIdentifier("img_"+i, "drawable", mContext.getPackageName());
        ImageLoader.getInstance().displayImage(mData.get(position).url, holder.item_image, options);
    }

    // 返回数据总数
    @Override
    public int getItemCount() {
        return mData == null ? 0 : mData.size();
    }

    // 自定义ViewHolder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        private TextView textView;
        private ImageView item_image;
        private CardView card_view;
        public ViewHolder(View itemView) {
            super(itemView);
            textView = (TextView)itemView.findViewById(R.id.item_text);
            item_image = (ImageView)itemView.findViewById(R.id.item_image);
            card_view = (CardView) itemView.findViewById(R.id.card_view);
        }
    }
}

刚刚学习接触,如有不足,欢迎指正。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值