Анимация перехода общего элемента в/из полноэкранного действия

Я создал анимацию перехода общего элемента между ImageView, расположенным в RecyclerView в действии A, и полноэкранным ImageView в действии B. Я заметил, что если действие B помечено в своей теме с помощью:

    <item name="android:windowFullscreen">true</item>

затем при возврате из действия B в действие A переход заканчивается раздражающим «прыжком», когда строка состояния снова отображается.

Есть идеи, как это решить?

p.s. Я не использую какой-либо overridePendingTransition между действиями, а переход общего элемента является переходом по умолчанию.


person AsafK    schedule 29.10.2017    source источник


Ответы (1)


Действие A: не полноэкранный режим;
Действие B: полноэкранный режим;

Просто добавьте это:

В А:

setExitSharedElementCallback(new SharedElementCallback() {
            @Override
            @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            public void onMapSharedElements(List<String> names, Map<String, View> sharedElements) {
                 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
            }
        });

В:

@Override
public void finishAfterTransition() {
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.finishAfterTransition();
}

Надеюсь, это поможет~

person liu jiaxing    schedule 07.04.2018
comment
Несмотря на то, что это не отмеченный ответ, это решение сработало для меня. Спасибо! - person Roland van der Linden; 20.11.2019