我正在使用网格RecyclerView,如果用户单击一个半可见项目,RecyclerView滚动到该位置,然后触发一个intent以使用SharedElementTransition打开一个新的Activity

问题是两者兼而有之

mRecyclerView.smoothScrollToPosition(adapterPosition);

getActivity().startActivity(myIntent, options.toBundle());

同时执行,因此滚动动画发生在SharedElementTransition的同一时间,这是一个烂摊子 . 我想仅在滚动动画完成且recyclelerview处于静止状态时启动intent . 我的代码:

@Override
    public void onClick(View view) {
        int adapterPosition = WallHolder.this.getAdapterPosition();
        Wallpaper w = mWallAdapter.getList().get(adapterPosition);
        mRecyclerView.smoothScrollToPosition(adapterPosition);

        if(getActivity() != null){
            Gson gson = new Gson();
            String serialized = gson.toJson(w);
            Intent myIntent = new Intent(getActivity(), DetailActivity.class);
            myIntent.putExtra("serialized", serialized);

            myIntent.putExtra("trans_name", ViewCompat.getTransitionName(mImageView));
            ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
                    getActivity(),
                    mImageView,
                    ViewCompat.getTransitionName(mImageView));
            getActivity().startActivity(myIntent, options.toBundle());}}