在RecyclerView中使用shapeshifter(AnimatedVectorDrawable)动画不起作用

问题描述 投票:0回答:1

我正在尝试在所有recyclerview项中使用变形器动画(AnimatedVectorDrawable文件),但是它不起作用,我不这样做。并且我在进行一次简单的活动之前就使用了此动画,并且可以正常工作。

这是错误:

尝试在空对象引用上调用虚拟方法'android.graphics.drawable.Drawable android.widget.ImageView.getDrawable()'

ImageView prefer = (ImageView)findViewById(R.id.prefer);
        final AnimatedVectorDrawable avd;
        Drawable d = prefer.getDrawable();
        avd = (AnimatedVectorDrawable)d;
        prefer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                avd.start();
            }
        });

通过我在包含recyclerView的活动类中编写此代码的方式

android android-studio android-recyclerview android-animation android-drawable
1个回答
0
投票

您应该将此代码添加到RecyclerView适配器内的RecyclerView Viewholder中。

(此代码在Kotlin中,但仅供您了解将逻辑放在哪里

class MyAdapter : RecyclerView.Adapter<MyAdapter.ViewHolder>() {

   override fun onBindViewHolder(holder: MyAdapter.ViewHolder, position: Int) {
       holder.bind(items[position])
   }

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
       private val prefer = itemView.findViewById<ImageView>(R.id.prefer)

       fun bind(item: MyItem) {
            // your code here
        }

我没有使用AnimatedVectorDrawable尝试过,但是应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.