2015-02-07 1 views
3

Я использую Level 21 API, тестирование на Nexus 6.Родитель деятельность становится невидимой при переходе выхода

У меня есть два мероприятия: мастер + деталь, каждый вид имеет фрагмент. Когда я выбираю элемент в основном списке, он переходит к подробному представлению.

Я включил просмотр переходы в мастере и подробно, как это:

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); 

    Transition ts = new Slide(Gravity.RIGHT); 
    ts.setDuration(2500); 
    getWindow().setEnterTransition(ts); 
    getWindow().setExitTransition(ts); 

    getWindow().setAllowEnterTransitionOverlap(true); 
    getWindow().setAllowReturnTransitionOverlap(true); 

анимация перехода работает, как ожидается, за исключением одной вещи: Когда я выбираю пункт, родительская деятельность получает скрытый в нем переходах поэтому я не вижу этого. Когда я нажимаю назад, детальный вид переходит (не скрыт), а мастер переходит (не скрывается). Итак, почему главный вид скрыт, когда он переходит из строя и переходы в виде подробного просмотра?

В Android Studio я вижу несколько постов журналов, таких, как это:

changeCanvasOpacity: opaque=true 
changeCanvasOpacity: opaque=false 
changeCanvasOpacity: opaque=false 
changeCanvasOpacity: opaque=false 

Первые два ряда для первого перехода (мастер => подробно), а второй два назад (деталь => мастер) , Как вы можете видеть, только одна строка «opaque = true». Я считаю, что это когда скрывается мастер-вид (по мере начала перехода).

Как я могу предотвратить это?

В этом сообщении Content Transitions In-Depth (part 2) в разделе «Переходы содержимого под капотом» и в пункте 1С сказано: «Структура устанавливает все переходящие представления в A в INVISIBLE.».

Я считаю, что это моя проблема. Как я могу это решить?

+0

Я хочу добиться чего-то подобного (при переходе от master => detail): http://www.christianpeeters.com/android-tutorials/tutorial-activity-slide-animation/#more-483 – mikeesouth

+0

Когда анимация (например, длительность = 300 мс) это менее заметно, но если у вас есть продолжительность 2500 мс, очень очевидно, что вызывающий вид исчезает до завершения анимации выхода. – mikeesouth

ответ

2

У меня была та же проблема, когда я использую ActivityOptionsCompat.makeSceneTransitionAnimation. я решил, что путем удаления флаг activiy: android:launchMode="singleInstance" может вызванное другой задачей не может использовать перевод анимации.

+0

Это решило проблему, когда я увидел, что детская активность не появится. Спасибо! – rsteckler

2

У меня была аналогичная проблема, и решить ее в OnCreate целевой деятельности, добавив этот фрагмент кода только после вызова setContentView:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     getWindow().setEnterTransition(null); 
    } 
0

Я столкнулся с этой проблемой, прежде чем я понял, что я звонил supportPostponeEnterTransition() без вызова supportStartPostponedEnterTransition() , Мне пришлось их называть, потому что я использовал Glide для загрузки изображения.

 Смежные вопросы

  • Нет связанных вопросов^_^