我正在尝试在所有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的活动类中编写此代码的方式
您应该将此代码添加到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尝试过,但是应该可以。