Активность перехода черный экран - PullRequest
0 голосов
/ 03 марта 2019

Итак, у меня есть WelcomeActivity -> HomeActivity и закрытие WelcomeActivity с finish()/supportFinishAfterTransition().Я хочу сделать слайд-переход или переход-переход (открытый для других предложений, между прочим).

Я исследовал это и, как оказалось, есть 2+ способа сделать это: либо с overridePendingTransition, который использует файлы anim.xml, либо с переходами (из документов для Android ), которые используют файлы transition.xml ...

Я пробовал оба, и оба дают мне нежелательные результаты:

  1. для анимации: я получаю этот уродливый черный переходный черный экран:

fade_in.xml:

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="0.0"
       android:toAlpha="1.0"
       android:duration="300" />

fade_out.xml:

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:fromAlpha="1.0"
       android:toAlpha="0.0"
       android:zAdjustment="top"
       android:duration="300" />

WelcomeActivity: (я пытался завершить работу перед операцией overridePendingTransaction)

    startActivity(Intent(this, HomeActivity::class.java))
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
    finish()
для переходов: я не могу сделать это, поэтому WelcomeActivity закрывается должным образом: либо закрывается до запуска анимации, либо не закрывается вообще.Я следую за документами по Android .. Я также попробовал это:

style.xml

    <item name="android:windowActivityTransitions">true</item>
    <item name="android:windowEnterTransition">@transition/enter_fade</item>
    <item name="android:windowExitTransition">@transition/exit_fade</item>

Мой другой вопрос, какой подход долженЯ имею?Google подталкивает переходы через анимацию для начала новых действий?

1 Ответ

0 голосов
/ 03 марта 2019

Что я всегда делаю, так это начинаю занятие (любым способом, который указан здесь .
). *1003* Я использую переходы между слайдами, используя следующие два файла:

slide_out_left.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />
</set>

slide_in_right.xml:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

Затем я запускаю такое действие (это ):

startActivity(MainActivity.this, SecondActivity.class);
overridePendingTransition(R.anim.slide_in_right.xml, R.anim.slide_in_left.xml);
finish();

При использовании этого задания плавно переходят к новому, справа налево.
Для черного экрана установите тему этого занятия как полупрозрачную в файле AndroidManifest.xml

android:theme="@android:style/Theme.Translucent"

поэтому ваш код будет выглядеть примерно так

<activity android:name=".Activity"
        android:theme="@android:style/Theme.Translucent" />

Ответ за черный экран взят из: https://stackoverflow.com/a/6468734/9819031

...