如何将过渡元素动画用于一个活动?

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

我有一个activity底部有recyclerViewimageView顶部有一个recyclerView

我在recyclerView中显示一些图像,当用户选择一个项目时,它将设置在顶部imageView上。

我想将带有过渡动画的recyclerView中的选定图像设置为imageView

我在我的activity xml和adapter的xml中设置了android:transitionName="img_selected"。我为recyclerView定义了一个监听器:

    @Override
      public void onItemClick(ImageView img, int position) {

        loadSelectedImage(position);

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {

          Pair[] pair = new Pair[2];
          pair[1] = new Pair<View, String>(img, "img_selected");
          ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MotionActivity.this, pair);
          options.toBundle();
        }

  }

另外,我在应用程序主题中添加了这一行:

<item name="android:windowContentTransitions">true</item>

但它不起作用。我怎样才能做到这一点?

这是我的应用程序的图像:

enter image description here感谢您的回答。

android android-animation shared-element-transition
1个回答
-1
投票

make interface用于处理代码定义适配器下面使用的回收器视图项的click事件...

 onItemClickListner onItemClickListner;


public interface onItemClickListner{
    void onItemClick(); // you can pass or object or value to need to access in recycler view activity.
}
public void setOnItemClickListner(RecyclerViewAdpater.onItemClickListner onItemClickListner) {
    this.onItemClickListner = onItemClickListner;
}

和onBind()方法一样使用click事件

 holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onItemClickListner.onItemClick();
        }
    });

之后,当你获得一个值并绑定适配器时使用的时间如下代码..

     adpater.setOnItemClickListner(new RecyclerViewAdpater.onItemClickListner() {
        @Override
        public void onItemClick() { // if you pass any parameter in adapter hear you can get that parameter value.
            Log.d("Value::","Hello");
        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.