我有一个activity
底部有recyclerView
,imageView
顶部有一个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>
但它不起作用。我怎样才能做到这一点?
这是我的应用程序的图像:
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");
}
});