【问题标题】:Animate all recycler view items at once一次为所有回收站视图项目设置动画
【发布时间】:2017-05-04 19:43:40
【问题描述】:

我有一个带有图像的回收站视图。我可以在单击项目时应用翻转动画。现在我想在倒数计时器用完时将所有图像一起翻转。如何为所有网格项设置一次动画?

这是我的适配器的 onBindViewHolder 的外观,

@Override
    public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {

        Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);

        viewHolder.holder.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
                        R.animator.crad_flip_right_out);
                AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
                        R.animator.card_flip_left_in);
                setLeftOut.setTarget(viewHolder.frontView);
                setLeftIn.setTarget(viewHolder.backView);
                setLeftOut.start();
                setLeftIn.start();
             }
        });

    }

【问题讨论】:

    标签: android listview gridview android-recyclerview android-animation


    【解决方案1】:

    试试这个:

    @Override
    public void onBindViewHolder(final CustomViewHolder viewHolder, final int position) {
    
        Picasso.with(context).load(imageList.get(position).getImageUrl()).placeholder(R.drawable.placeholder).into(viewHolder.imageView);
    
        viewHolder.holder.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animateView(viewHolder);
            }
        });
    
    }
    
    public void animateViewsOfRecyclerView(){
        for(int i=0;i<recyclerviewAdapter.getCount();++i){
            animateView(recyclerview.findViewHolderForAdapterPosition(i));
        }
    }
    public void animateView(ViewHolder viewholder){
        AnimatorSet setLeftOut = (AnimatorSet) AnimatorInflater.loadAnimator(context,
                R.animator.crad_flip_right_out);
        AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(context,
                R.animator.card_flip_left_in);
        setLeftOut.setTarget(viewHolder.frontView);
        setLeftIn.setTarget(viewHolder.backView);
        setLeftOut.start();
        setLeftIn.start();
    }
    

    当您需要为所有视图设置动画时,调用方法“animateViewsOfRecyclerView()”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多