2
私はRecyclerViewとアクティビティのビュー(カード)の間で共有要素の移行を実装するためにこのtutorialに従っていますが、新しいアクティビティを開始するためにMyRecyclerAdapterクラスのonClickListenerを使用しているので、 。 ちょうど新しい開発で、あなたが私を助けてくれることを願っています。RecyclerViewのonClickListenerへの共有要素の移行を実装する方法は?
MyRecyclerAdapter.java
public class MyRecyclerAdapter extends RecyclerView.Adapter<PaletteViewHolder> {
private Context context;
private List<Palette> palettes;
public MyRecyclerAdapter(Context context, List<Palette> palettes) {
this.palettes = new ArrayList<Palette>();
this.palettes.addAll(palettes);
this.context = context;
}
@Override
public PaletteViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.
from(viewGroup.getContext()).
inflate(R.layout.card_view, viewGroup, false);
itemView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(context, ScrollingActivity.class);
intent.putExtra("P25", "Longanissa");
context.startActivity(intent);
}
});
return new PaletteViewHolder(itemView);
}
@Override
public void onBindViewHolder(PaletteViewHolder paletteViewHolder, int i) {
Palette palette = palettes.get(i);
paletteViewHolder.titleText.setText(palette.getName());
paletteViewHolder.contentText.setText(palette.getHexValue());
paletteViewHolder.card.setCardBackgroundColor(palette.getIntValue());
}
@Override
public int getItemCount() {
return palettes.size();
}
animateIntent方法:
public void animateIntent(View view) {
// Ordinary Intent for launching a new activity
Intent intent = new Intent(this, YourSecondActivity.class);
// Get the transition name from the string
String transitionName = getString(R.string.transition_string);
// Define the view that the animation will start from
View viewStart = findViewById(R.id.card_view);
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(this,
viewStart, // Starting view
transitionName // The String
);
//Start the Intent
ActivityCompat.startActivity(this, intent, options.toBundle());