Хобрук: Ваш путь к мастерству в программировании

Как использовать переход общего элемента между FirstFragment (включая RecyclerView) и SecondFragment

Я мог бы реализовать переход общего элемента между двумя фрагментами БЕЗ RECYCLERVIEW!!!

Это первый фрагмент:

 public class FirstFragment extends Fragment {

ImageView img_small;
LinearLayout layout_ofc_cities;
LinearLayout layout;

public FirstFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_first, container, false);

    img_small = (ImageView) view.findViewById(R.id.img_small);
    layout_ofc_cities = (LinearLayout) view.findViewById(R.id.layout_ofc_cities);
    layout = (LinearLayout) view.findViewById(R.id.layout);

    layout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

                setSharedElementReturnTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_trans));
                setExitTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade));

                SecondFragment secondFragment = new SecondFragment();
                secondFragment.setSharedElementEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(R.transition.change_image_trans));
                secondFragment.setEnterTransition(TransitionInflater.from(getActivity()).inflateTransition(android.R.transition.fade));

                FragmentTransaction ft = getFragmentManager().beginTransaction()
                        .replace(R.id.container, secondFragment)
                        .addToBackStack(null)
                        .addSharedElement(layout_ofc_cities, "transitionTxt")
                        .addSharedElement(img_small, "transitionImg");
                ft.commit();
            }

        }
    });

    return view;
  }
}

и это второй фрагмент:

 public class SecondFragment extends Fragment {

public SecondFragment() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_second, container, false);

    return view;
  }

}

И это работает! но когда я реализую RecyclerView в FirstFragment, чтобы использовать SharedElementTransition для LinearLayout и ImageView из RecyclerView для LinearLayout и ImageView во SecondFragment, это не работает.

Мне нужен пример кода с двумя фрагментами, в первом из которых есть RecyclerView, с анимацией между их общими элементами. Может кто-нибудь мне помочь?


Ответы:


1

Я нашел ответ:

решение находится на этой странице: http://jemsdevmobile.com/2016/02/11/lollipop-transition-between-activities/

просто вам нужно изменить теги xml. например, измените "imageview" на "ImageView"

04.07.2016
Новые материалы

Решения DBA Metrix
DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

Начало работы с Блум
Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...