Intereting Posts
Идентификатор регистрации становится «NotRegistered» без причины Нет найденного ресурса, соответствующего данному имени Xamarin Android Как получить информацию об устройстве в Android Android SwipeRefreshLayout, как реализовать canChildScrollUp, если дочерний элемент не является ListView или ScrollView Как изменить размер изображения при нажатии Удалить подчеркивание из ссылок в TextView – Android Adb (мост отладки android) после обновления OSX Yosemite Как рисовать круговую диаграмму вручную в Android? PreferenceActivity значок активной панели действий не вернется домой (в отличие от ET :) Android Как правильно утилизировать растровые изображения при использовании RecyclerView? Как скрыть папку в sdcard в android Android Studio Показывает фоновые задачи в строке состояния вместо плавающего окна Ионный навигационный просмотр и внешний ресурс Подгонка содержимого WebView на экране с поддержкой масштабирования Можете ли вы зарегистрировать приложение в меню «долгое нажатие кнопки питания»?

Введите переход по фрагменту с общим элементом, предназначенным для общего элемента

Я использую новый 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; } } 

Переход ввода не должен применяться к представлениям общего элемента. Наиболее вероятный сценарий заключается в том, что ваш общий элемент находится в другом представлении с фоном, что делает этот вид затронутым вступлением. Вот такая ситуация:

 <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#FFF" > <ImageView android:src="@drawable/pretty_picture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:transitionName="picture" android:padding="20dp"/> </FrameLayout> 

Здесь ImageView является общим элементом.

Если это произойдет, вам нужно добавить волшебный переход: ChangeTransform. Если он обнаруживает, что родительский элемент изменяется, он вытаскивает общий элемент из родителя и переводит его отдельно.