Как сдвинуть вид справа налево? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь передвинуть вид справа налево, видимость которого составляет GONE при нажатии кнопки, и повернуть вспять при нажатии другой кнопки. Я попробовал следующее решение. Но это требует, чтобы представление было VISIBLE, и оно будет перемещать view из одной позиции в другую. Я хочу получить эффект скольжения, как navigation drawer, но с view. Как мне этого добиться?

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

   <translate
        android:fromXDelta="0%p"
        android:toXDelta="75%p"
        android:duration="800" />
</set>

imageView = (ImageView) findViewById(R.id.img);

// Load the animation like this
animSlide = AnimationUtils.loadAnimation(getApplicationContext(),
                    R.anim.slide);

// Start the animation like this
imageView.startAnimation(animSlide);

1 Ответ

1 голос
/ 23 мая 2019

Изменения видимости должны быть анимированы с помощью Transition API, который доступен в пакете поддержки (androix):

private void toggle() {
    View imageView = findViewById(R.id.imageView);
    ViewGroup parent = findViewById(R.id.parent);

    Transition transition = new Slide(Gravity.LEFT);
    transition.setDuration(600);
    transition.addTarget(R.id.imageView);

    TransitionManager.beginDelayedTransition(parent, transition);
    imageView.setVisibility(show ? View.VISIBLE : View.GONE);
}

Вот результат:

enter image description here

Вот мой ответ с дополнительной информацией.

...