Tôi muốn đi từ một danh sách xem đến xem chi tiết và do đó, tôi sử dụng sau OnClickListener
trong danh sách của tôi:Giao dịch Fragment với quá trình chuyển đổi - transitionNames Unique được yêu cầu
@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();
}
chức năng của tôi trở lại tên duy nhất, tôi có hai quan điểm khác nhau, nhưng nó vẫn không hoạt động. tôi đã nhận xét các chức năng không cần thiết ra và viết một số tên giao dịch duy nhất trong đó bằng tay ... Nhưng vẫn còn, tôi nhận được ngoại lệ này, trong dòng của addSharedElement
đầu tiên:
java.lang.IllegalArgumentException: Unique transitionNames are required for all sharedElements
at android.support.v4.app.BackStackRecord.addSharedElement
EDIT
Nếu không có các yếu tố được chia sẻ, mọi thứ đều hoạt động hoàn hảo ...
Cảm ơn bạn rất nhiều vì điều này! –