Как я могу переместить представление из позиции Y в другую позицию Y

#java #android #animation

#java #Android #Анимация

Вопрос:

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

Animation logbtn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.logbtnanim);
button.startAnimation(logbtn);

И код анимации таков.
PS Parent — это макет ограничения.

 <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100"
        android:duration="1000"/>
</set>
 

Комментарии:

1. почему бы не использовать метод animate класса view? Вы работаете в Android Studio?

2. Привет! Есть отличная статья, в которой описаны простые анимации. Пожалуйста, проверьте это: medium.com/@yasmineayad /.

3. @MehranBehbahani Не могли бы вы объяснить более подробно, пожалуйста?

4. принятый ответ — это именно то, что я имел в виду

Ответ №1:

Прежде всего, вам не нужен тег AnimatorSet, если у вас есть только одна анимация. Это используется, если вы хотите воспроизвести несколько анимаций вместе.

Во-вторых, вы используете TranslateAnimation, который не анимирует свойство Buttons, он только перемещает пиксели на экране, поэтому после анимации Android по-прежнему считает, что view находится в старой позиции, поэтому он все еще доступен там.

Я предлагаю сделать это в коде Java, используя ViewPropertyAnimator чтото вроде :

 button.animate().translationY(...f).duration(1000);
 

Или ObjectAnimator, который немного более гибкий, поскольку вы также можете сделать это в xml.

Комментарии:

1. Большое вам спасибо, это именно то, что мне нужно.