Переход активности с игнорированием панели инструментов

посмотрим, может ли кто-нибудь помочь мне с этим.

В моем приложении я успешно реализовал переходы слайдов между большинством своих действий. Все мои макеты действий состоят из обычной панели инструментов и некоторого контента ниже. Так что я бы хотел, чтобы анимация игнорировала панель инструментов и влияла только на основной контент.

В идеале панель инструментов осталась бы на своем месте, а основное содержимое макета было бы скользящим.

Для завершения вопроса вот один из моих XML-файлов перехода:

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

<translate
    android:duration="500"
    android:fromXDelta="100%"
    android:toXDelta="0%" >
</translate>

и вот как я устанавливаю переходы:

overridePendingTransition(R.transition.out, R.transition.in);

Спасибо


person Nemesis    schedule 07.11.2016    source источник


Ответы (3)


Итак, я нашел ответ после нескольких часов работы над ним. У меня проблемы с андроидом 7.1. Кроме этого, он работает в 5.x и 6.x.

<?xml version="1.0" encoding="utf-8"?>
<slide
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:slideEdge="right"
    android:duration="500">
    <targets>
        <target android:excludeId="@id/toolbar"/>
        <target android:excludeId="@android:id/statusBarBackground"/>
        <target android:excludeId="@android:id/navigationBarBackground"/>
    </targets>
</slide>

Как видите, вы можете добавить виды, которые будут игнорироваться анимацией. В моем случае панель инструментов, панель состояния и панель навигации.

Затем вы можете применить анимацию так, как вы предпочитаете, она повлияет на все, кроме элементов, указанных для игнорирования.

person Nemesis    schedule 07.11.2016

Мое предложение состоит в том, чтобы создать одно действие, содержащее панель инструментов и макет контейнера, а также поместить фрагменты внутри контейнера и выполнить переход для фрагментов. Это может решить вашу проблему.

person Nivedh    schedule 07.11.2016
comment
Привет, Нивед, я думал об этой возможности, и я знаю, что это выполнимо. Но я знаю, что сделать это с помощью деятельности тоже можно, только не знаю как. Спасибо за предложение. - person Nemesis; 07.11.2016
comment
Да, я тоже думаю, что это выполнимо, я предложил простой метод. Пожалуйста, просмотрите stackoverflow.com/questions/27658577/ - person Nivedh; 07.11.2016
comment
Привет, Нивед, спасибо, что указали на другой пост, благодаря ему у меня все заработало. - person Nemesis; 07.11.2016

попробуйте добавить ниже код в свой стиль. Посмотрите, работает ли это

<style name="your_theme_name" parent="your_theme">
<item name="android:windowActionBarOverlay">true</item>
</style>
person Kunal Parikh    schedule 07.11.2016
comment
Это не имеет ничего общего с проблемой панели инструментов. - person slott; 26.06.2019