2016-07-26 6 views
5

У меня есть три фрагмента внутри ViewPager в активности, я хочу добиться перехода общего элемента из одного из фрагментов в другое. Переход осуществляется из вида ресайклера, который находится внутри фрагмента, который находится внутри объекта просмотра, который находится внутри объекта . Activity-> ViewPager-> Fragment-> RecyclerviewКак переход от общего элемента к фрагменту к активности

Я искал каждое место в Интернете, но есть информация только о переход общих элементов из одного фрагмента в другой и одно действие в другое. Там нет содержания о переходе от фрагмента к активности

holder.poster.setTransitionName("posterX"); 
      ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) con,holder.poster,holder.poster.getTransitionName()); 
      Log.e("Animation", "Success"); 
      //startActivity((Activity) con,intent,options.toBundle()); 
      c.startActivity(intent,options.toBundle()); 

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

D/ViewRootImpl: changeCanvasOpacity: opaque=true 

Его один из logcats. Я думаю, что это должна быть проблема!

ответ

0

У меня была такая же проблема, я не мог найти ничего, что может помочь, но, возможно, вам стоит пересмотреть, почему вам нужно отношение фрагмента к активности, когда вы можете работать с отношением «Фрагмент к фрагменту» или «Активность в действие».

Я решил мою проблему таким образом изменяя код для фрагмента к фрагменту отношения и есть много документации и примеры о том Shared Element Transitions

+0

так плохо попробовать использовать вложенные фрагменты и ответ! – user3740778

+0

на данный момент это невозможно – Carlos

0

фрагмента деятельности является таким же, как активность в деятельность, потому что ваш фрагмент внутри деятельности.

+0

Теоретически это правильно, но практически, когда вы код, вы пишете переход от фрагмента, потому что элементы не находятся в активности его в фрагменте. Поэтому в конечном итоге это фрагмент активности. – user3740778

0

Я, наконец, нашел ответ, метод вызова startActivity отличается. Вы должны вызвать

startActivityFromFragment(fragment, intent, req_code, options.toBundle()); 

из AppCompactActivity