Спрятать / показать анимацию на одном View, когда происходит и то и другое - Android - PullRequest
2 голосов
/ 03 февраля 2011

Я создаю анимацию, чтобы показать и скрыть боковую панель моего apk. Но когда происходит событие, обе анимации выполняются.

Мой код аниме переключателя

private boolean showingBar = true;
private void switchSideBar() {
        if (showingBar) {
            sideBar.startAnimation(hideBar);
            Toast.makeText(this, "Showing", Toast.LENGTH_SHORT).show();
            showingBar = false;
        } else {
            showingBar = true;
            Toast.makeText(this, "Hiding", Toast.LENGTH_SHORT).show();
            sideBar.startAnimation(showBar);
        }
    }

Я добавил эти тосты, чтобы посмотреть, что происходит, и когда происходит событие, отображается только один текст.

Код анимации таков:

Showbar

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="-50" android:toXDelta="0"
    android:duration="300" />

hideBar

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0" android:toXDelta="-50"
    android:duration="300" />

Что происходит?

1 Ответ

2 голосов
/ 03 февраля 2011

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

Если вы говорите, что обе анимации выполняются, потому что элемент возвращается в исходное положение, когда анимация заканчивается, это возможно происходит потомуВы не устанавливаете fillAfter в true в своей анимации.Вы также можете взглянуть на onAnimationEnd в качестве опции для изменения положения боковой панели при открытии и закрытии (таким образом, делая ее постоянной).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...