仿京东首页----多条目展示

首先,我们在mainActivity的布局文件中,用一个XrecycleView.
然后,我们在创建一个全展示的ShowAdapter。
MVP的框架我就省略不写了。
下面是activity中的操作:
manActivity中的实现Adapter:

//加载布局
 private void initView(View view) {
        flyBanner = view.findViewById(R.id.flyBanner);
        mRecyclerView = view.findViewById(R.id.mRecyclerView);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    }
 /**
     * 首页展示成功
     * @param result
     */
    @Override
    public void Success(String result) {
        ShowBean showBean = new Gson().fromJson(result, ShowBean.class);
        ShowBean.DataBean data = showBean.getData();
        
        showAdapter = new ShowAdapter(getActivity(),data);
        mRecyclerView.setAdapter(showAdapter);
    }

下面是多条目的Adapter-----showAdapter页面的操作:

//【第一步】
//创建两个class继承XRecyclerView的ViewHolder
/** 
     * 分类
     */
    class FLVH extends XRecyclerView.ViewHolder{
        private RecyclerView fenlei;
        public FLVH(@NonNull View itemView) {
            super(itemView);
            fenlei = itemView.findViewById(R.id.fenlei);
        }
    }
    /**
     * 秒杀
     */
    class MSVH extends XRecyclerView.ViewHolder{
        private RecyclerView miao;
        public MSVH(@NonNull View itemView) {
            super(itemView);
            miao = itemView.findViewById(R.id.miao);
        }
    }

然后是多条目的条目类型

//【第二步】
@Override
    public int getItemViewType(int position) {
        if(position == 0){
            return 0;
        }else if(position == 1){
            return 1;
        }else{
            return 2;
        }
    }
//【第三步:加载布局】
@NonNull
    @Override
    public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
      if(i == 0){
           View view = LayoutInflater.from(context).inflate(R.layout.item_fenlei, viewGroup, false);
           return new FLVH(view);
       }else if(i == 1){
           View view = LayoutInflater.from(context).inflate(R.layout.item_miao, viewGroup, false);
           return new MSVH(view);
       }else{
           View view = LayoutInflater.from(context).inflate(R.layout.item_tui, viewGroup, false);
           return new TJVH(view);
       }
    }
//【第四步:绑定】
 @Override
    public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
        if(viewHolder instanceof FLVH){

            List<ShowBean.DataBean.FenleiBean> fenlei = data.getFenlei();
            FLVHAdapter flvhAdapter = new FLVHAdapter(context,fenlei);
            ((FLVH)viewHolder).fenlei.setLayoutManager(new GridLayoutManager(context,5));
            ((FLVH)viewHolder).fenlei.setAdapter(flvhAdapter);

        }else if(viewHolder instanceof MSVH){
           ShowBean.DataBean.MiaoshaBean miao = data.getMiaosha();
            List<ShowBean.DataBean.MiaoshaBean.ListBean> list = miao.getList();
            MSVHAdapter msvhAdapter = new MSVHAdapter(context,list);
            ((MSVH)viewHolder).miao.setLayoutManager(new LinearLayoutManager(context,0,false));
            ((MSVH)viewHolder).miao.setAdapter(msvhAdapter);
        }else{

            return;
        }
    }

多条目的适配器已经完成啦:
现在还有两个子Adapter需要创建:分别是:FLVHdapter和MSVHAdapter。

package adapter;

import android.content.Context;
import android.support.annotation.NonNull;
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.bumptech.glide.Glide;
import com.example.monthdemo.R;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.List;

import bean.ShowBean;

public class FLVHAdapter extends XRecyclerView.Adapter<FLVHAdapter.FLVH> {
    private Context context;
    private List<ShowBean.DataBean.FenleiBean> list;

    public FLVHAdapter(Context context, List<ShowBean.DataBean.FenleiBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public FLVHAdapter.FLVH onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.item_fenlei_item, viewGroup, false);
        return new FLVH(view);
    }

    @Override
    public void onBindViewHolder(@NonNull FLVHAdapter.FLVH flvh, int i) {
        ShowBean.DataBean.FenleiBean fenleiBean = list.get(i);
        flvh.tui_tv.setText(fenleiBean.getName());
        Glide.with(context).load(fenleiBean.getIcon()).into(flvh.fenlei_iv);
    }

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

    class FLVH extends RecyclerView.ViewHolder {
        private ImageView fenlei_iv;
        private TextView tui_tv;
        public FLVH(@NonNull View itemView) {
            super(itemView);
            fenlei_iv = itemView.findViewById(R.id.fenlei_iv);
            tui_tv = itemView.findViewById(R.id.tui_tv);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43808025/article/details/86561364