RecycleView多条目加载,设置动画

public class RecycleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private static final String TAG = "RecycleAdapter-----";
    private final Context context;
    private final List<GoodsBean.DataBeanX.DataBean> list;
    public MyViewHodler1 hodler1;
    public MyViewHodler2 hodler2;

    public RecycleAdapter(Context context, List<GoodsBean.DataBeanX.DataBean> list) {
        this.context = context;

        this.list = list;

        int size = list.size();

    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == 0) {
            View view = View.inflate(context, R.layout.lv_item, null);

            hodler1 = new MyViewHodler1(view);

            return hodler1;
        } else {
            View view1 = View.inflate(context, R.layout.gv_item, null);

            hodler2 = new MyViewHodler2(view1);

            return hodler2;
        }
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
        switch (getItemViewType(position)) {
            case 0:
                hodler1 = (MyViewHodler1) holder;

                String title1 = list.get(position).getTitle();
                Log.d(TAG, "标题1: " + title1);
                hodler1.getLv_tv().setText(title1);
                hodler1.getLv_tv1().setText(list.get(position).getViews_label());

                String pics = list.get(position).getPics().get(0);
                String img = HttpConfig.icon_url + pics;
                final ImageView lv_pic = hodler1.getLv_pic();
                ImageLoader loader = ImageLoader.getInstance();
                loader.displayImage(img, lv_pic);

                //设置图片的点击动画
                lv_pic.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Log.d(TAG, "---");
                        //动画
                        ObjectAnimator alpha = ObjectAnimator.ofFloat(lv_pic, "alpha", 1.0f, 0.0f, 1.0f);
                        alpha.setDuration(3000);
                        alpha.start();
                    }
                });
                break;
            case 1:
                hodler2 = (MyViewHodler2) holder;
                hodler2.getGv_tv().setText(list.get(position).getTitle());
                String s = list.get(position).getPics().get(0);
                String img1 = HttpConfig.icon_url + s;
                final ImageView gv_pic1 = hodler2.getGv_pic1();
                final ImageView gv_pic2 = hodler2.getGv_pic2();
                final ImageView gv_pic3 = hodler2.getGv_pic3();
                ImageLoader loader1 = ImageLoader.getInstance();

                loader1.displayImage(img1, gv_pic1);
                loader1.displayImage(img1, gv_pic2);
                loader1.displayImage(img1, gv_pic3);

                gv_pic1.setOnClickListener (new View.OnClickListener () {
                    @Override
                    public void onClick(View v) {
                        ObjectAnimator alpha1 = ObjectAnimator.ofFloat (gv_pic1, "alpha", 1.0f, 0.0f, 1.0f);
                        alpha1.setDuration (3000);
                        alpha1.start ();
                    }
                });

                gv_pic2.setOnClickListener (new View.OnClickListener () {
                    @Override
                    public void onClick(View v) {
                        ObjectAnimator alpha2 = ObjectAnimator.ofFloat (gv_pic2, "alpha", 1.0f, 0.0f, 1.0f);
                        alpha2.setDuration (3000);
                        alpha2.start ();
                    }
                });

                gv_pic3.setOnClickListener (new View.OnClickListener () {
                    @Override
                    public void onClick(View v) {
                        ObjectAnimator alpha3 = ObjectAnimator.ofFloat (gv_pic3, "alpha", 1.0f, 0.0f, 1.0f);
                        alpha3.setDuration (3000);
                        alpha3.start ();
                    }
                });

                break;
        }

        //点击子条目长按删除
        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                AlertDialog dialog = new AlertDialog.Builder(context)
                        .setTitle("删除框")
                        .setMessage("确认删除吗?")
                        .setPositiveButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss ();
                            }
                        })
                        .setNegativeButton("確定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                list.remove(position);
                                notifyDataSetChanged();
                                dialog.dismiss();
                            }
                        }).create();
                dialog.show();
                return true;
            }
        });


    }


    //设置多条目
    @Override
    public int getItemViewType(int position) {
        List<String> pics = list.get(position).getPics();

        int size = pics.size();

        if (size == 1) {
            return 0;
        }
        return 1;
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    //创建holder的方法
    class MyViewHodler1 extends RecyclerView.ViewHolder {

        private final TextView lv_tv;
        private final TextView lv_tv1;
        private final ImageView lv_pic;

        public MyViewHodler1(View itemView) {
            super(itemView);

            lv_tv = itemView.findViewById(R.id.lv_tv);
            lv_tv1 = itemView.findViewById(R.id.lv_tv1);
            lv_pic = itemView.findViewById(R.id.lv_pic);
        }

        public TextView getLv_tv() {
            return lv_tv;
        }

        public TextView getLv_tv1() {
            return lv_tv1;
        }

        public ImageView getLv_pic() {
            return lv_pic;
        }
    }

    class MyViewHodler2 extends RecyclerView.ViewHolder {

        private final TextView gv_tv;
        private final ImageView gv_pic1;
        private final ImageView gv_pic2;
        private final ImageView gv_pic3;

        public MyViewHodler2(View itemView) {
            super(itemView);

            gv_tv = itemView.findViewById(R.id.gv_tv);
            gv_pic1 = itemView.findViewById(R.id.gv_pic1);
            gv_pic2 = itemView.findViewById(R.id.gv_pic2);
            gv_pic3 = itemView.findViewById(R.id.gv_pic3);
        }

        public TextView getGv_tv() {
            return gv_tv;
        }

        public ImageView getGv_pic1() {
            return gv_pic1;
        }

        public ImageView getGv_pic2() {
            return gv_pic2;
        }

        public ImageView getGv_pic3() {
            return gv_pic3;
        }
    }
}


猜你喜欢

转载自blog.csdn.net/chen_md/article/details/80187776
今日推荐