Окно ввода перехода не работает в Android - PullRequest
0 голосов
/ 28 января 2019

В приложении для Android я пытаюсь реализовать windowEnterTransition

С activity A я открываю activity B, в activity B, у меня есть TextView, который я хочускользить сверху вниз по центру экрана , когда activity B открывается

Проблема

Когда activity B открывается, TextView остается на своем месте.

Вопрос

Что я делаю не так и как я могу это исправить?

Код

Задание B

public class SecondaryActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secondary);

        setWindowTransition();
    }

    private void setWindowTransition() {
        Slide textSlideDown = new Slide(Gravity.TOP);
        textSlideDown.addTarget(R.id.helloText);
        textSlideDown.setDuration(1000);
        getWindow().setEnterTransition(textSlideDown);
    }
}

Код для открытия действия B из упражнения A

Intent openSecondActivity = new Intent(MainActivity.this, SecondaryActivity.class);
ActivityOptions op = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this);
startActivity(openSecondActivity, op.toBundle());

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowContentTransitions">true</item>
</style>

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы должны запросить функцию перед установкой перехода, я думаю, что в Java это похоже на getWindow (). RequestFeature (Window.FEATURE_CONTENT_TRANSITIONS)

0 голосов
/ 28 января 2019

Я не использовал Slide много, но я думаю, что Gravity.Top в вашем Slide textSlideDown = new Slide(Gravity.TOP); показывает направление вашего слайда, а не начальную точку.Попробуйте использовать Gravity.Bottom, так как это предназначено для перемещения представления от нижнего края контейнера.

( Источник )

ОБНОВЛЕННЫЙ ОТВЕТ: Убедитесь, чтоВы включили переходы содержимого окна в своей теме.Посмотрите на шаги, которые определены в руководстве разработчика :

в вашем манифесте:

<!-- enable window content transitions -->
<item name="android:windowActivityTransitions">true</item>
...