Я использую новый Lollipop api для setEnterTransition
для фрагмента, а затем добавляю общий переход элемента для изображения в фрагменте. Желаемое поведение во-первых, изображение должно перейти в свое положение, после чего остальные фрагменты в фрагменте должны исчезнуть.
Тем не менее, enterTransition применяется к общему элементу, поэтому он исчезает вместе с остальными видами. Если я не настрою enterTransition, изображение будет двигаться правильно, но пока оно перемещается, другое содержимое уже видно.
Как мне заставить его не применять enterTransition к общему виду?
Я нашел эту фиксацию в AOSP, которая, похоже, должна решить эту проблему, но она, похоже, не работает.
Вот пример кода:
public class Fragment1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main_fragment, container, false);
final ImageView imageView = (ImageView) rootView.findViewById(R.id.image);
final Button button = (Button) rootView.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new ChangeImageTransform());
transitionSet.addTransition(new ChangeBounds());
transitionSet.setDuration(300);
Fragment fragment2 = new Fragment2();
fragment2.setSharedElementEnterTransition(transitionSet);
fragment2.setSharedElementReturnTransition(transitionSet);
Fade fade = new Fade();
fade.setStartDelay(300);
fragment2.setEnterTransition(fade);
getFragmentManager().beginTransaction()
.replace(R.id.container, fragment2)
.addSharedElement(imageView, "SharedImage")
.commit();
}
});
return rootView;
}
}