Ich möchte aus einer Listenansicht in die Detailansicht gehen und deshalb verwende ich OnClickListener
in meiner Liste folgende:Fragment Transaktionen mit Übergang - Einzigartige transitionNames erforderlich
@Override
public void onClick(View view)
{
Bet bet = (Bet)view.getTag();
FragmentManager fm = getActivity().getSupportFragmentManager();
BetDetailFragment f = BetDetailFragment.create(bet);
String tag = f.getClass().getName();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.move));
f.setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.move));
}
FragmentTransaction ft = fm.beginTransaction()
.replace(R.id.frame_container, f, tag)
.addToBackStack(tag);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
L.d(this, "TRANS: " + TransitionUtil.getTransitionNameBetLogo1(bet) + "|" + view.findViewById(R.id.ivLogo1));
L.d(this, "TRANS: " + TransitionUtil.getTransitionNameBetLogo2(bet) + "|" + view.findViewById(R.id.ivLogo2));
ft.addSharedElement(view.findViewById(R.id.ivLogo1), "1");//TransitionUtil.getTransitionNameBetLogo1(bet));
ft.addSharedElement(view.findViewById(R.id.ivLogo2), "2");//TransitionUtil.getTransitionNameBetLogo2(bet));
}
ft.commit();
}
Meine Funktionen eindeutige Namen zurückgeben, ich habe zwei verschiedene Ansichten, aber es funktioniert immer noch nicht. bemerkte ich bereits unnötige Funktionen und einige einzigartige Transaktionsnamen dort schrieb von Hand ... Aber noch, bekomme ich diese Ausnahme in der Zeile des ersten addSharedElement
:
java.lang.IllegalArgumentException: Unique transitionNames are required for all sharedElements
at android.support.v4.app.BackStackRecord.addSharedElement
EDIT
Ohne die geteilten Elemente funktioniert alles einwandfrei ...
Vielen Dank dafür! –