RecyclerView之GridView实现

本文介绍了一个具体的RecyclerView网格适配器实现案例,包括自定义的GridAdapter类及ViewHolder,展示了如何通过GridLayoutManager配置RecyclerView以实现网格布局效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * Created by keven on 2018/3/9.
 */

public class RecyclerViewGridAdapter extends RecyclerView.Adapter<RecyclerViewGridAdapter.GridViewHolder> implements OnClickListener{

    private Context mContext;
    //RecyclerView所需的类
    private List<CarProductModel> items;

    //构造方法,一般需要接收两个参数 1.上下文 2.集合对象(包含了我们所需要的数据)
    public RecyclerViewGridAdapter(Context mContext, List<CarProductModel> items){
        this.mContext = mContext;
        this.items = items;
    }

    @Override
    public RecyclerViewGridAdapter.GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //转换一个ViewHolder对象,决定了item的样式,参数1.上下文 2.XML布局资源 3.null
        View itemView = View.inflate(mContext, R.layout.item_grid_product, null);
        //创建一个ViewHodler对象
        GridViewHolder gridViewHolder = new GridViewHolder(itemView);
        //把ViewHolder传出去
        return gridViewHolder;
    }

    @Override
    public void onBindViewHolder(RecyclerViewGridAdapter.GridViewHolder holder, int position) {
        CarProductModel item = items.get(position);
        holder.setData(item);
    }

    @Override
    public int getItemCount() {
        return null != items ? items.size() : 0;
    }

    @Override
    public void onClick(View view) {

    }

    public class GridViewHolder extends RecyclerView.ViewHolder {
        private ImageView itemIcon;
        private TextView itemName, itemPrice;

        public GridViewHolder(View itemView) {
            super(itemView);
            itemIcon = (ImageView) itemView.findViewById(R.id.item_icon);
            itemName = (TextView) itemView.findViewById(R.id.item_name);
            itemPrice = (TextView) itemView.findViewById(R.id.item_price);
        }

        public void setData(CarProductModel item){
            itemName.setText(item.getName());
            itemPrice.setText(item.getFooterPrice() + "-" + item.getHeightPrice() + "万");
        }

    }
}

二、Activity实现:

  private void initViewRecycler(){
        recyclerRecommendProduct = (RecyclerView) findViewById(R.id.recommend_product);
        //布局管理器对象 参数1.上下文 2.规定一行显示几列的参数常量
        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
        //设置RecycleView显示的方向是水平还是垂直 GridLayout.HORIZONTAL水平  GridLayout.VERTICAL默认垂直
        gridLayoutManager.setOrientation(GridLayout.VERTICAL );
        //设置布局管理器, 参数gridLayoutManager对象
        recyclerRecommendProduct.setLayoutManager(gridLayoutManager);
        recyclerViewGridAdapter = new RecyclerViewGridAdapter(this, carProductModels);
        recyclerRecommendProduct.setAdapter(recyclerViewGridAdapter);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值