将SharedElementTransition与recyclerView一起使用时出错

时间:2019-08-12 14:54:33

标签: android animation

我有一个recyclerView和一个ImageView,它们是从Firebase数据库获取的。我正在尝试使用SharedElementTransition将recyclerView的图像传递给新活动

我在adatper类中的过渡代码如下:

view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(context,ProductPage.class);
                intent.putExtra("Node", node.getText().toString());
                ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity),
                        image, ViewCompat.getTransitionName(image));
                context.startActivity(intent, optionsCompat.toBundle());


            }
        });

错误在下面给出:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

ActivityOptionsCompat 中的活动中插入,使用 ActvityName.this

ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)context,
                    image, ViewCompat.getTransitionName(image));

尝试使活动中的recycleview项目成为点击侦听器,并使用ActivityName.this。

ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(ActivityName.this,
                        image, ViewCompat.getTransitionName(image));

答案 1 :(得分:0)

因为您正在适配器中使用它。您必须对活动的上下文进行大小写,然后使用它。

ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)getContext(),
                    image, ViewCompat.getTransitionName(image));