>source

버튼이 있고 내려가는 애니메이션을 만들고 싶습니다. 내가 만들었지 만 기능은 이전 위치에 남아 있습니다 (버튼이 움직이는 것처럼 버튼을 클릭하면 작동하지 않지만 이전 위치를 클릭하면 작동합니다)

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

그리고 애니메이션 코드는 이것입니다.
추신 부모는 제약 레이아웃입니다.

<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

    우선 애니메이션이 하나만있는 경우 AnimatorSet 태그가 필요하지 않습니다. 여러 애니메이션을 함께 재생하려는 경우에 사용됩니다.

    두 번째로 Buttons 속성에 애니메이션을 적용하지 않는 TranslateAnimation을 사용하고 있으며 화면의 픽셀 만 이동하므로 애니메이션 후에도 Android는 여전히 뷰가 이전 위치에 있다고 생각하므로 여기에서 클릭 할 수 있습니다.

    다음과 같은 ViewPropertyAnimator를 사용하여 Java 코드로 수행하는 것이 좋습니다.

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

    또는 xml로도 할 수 있기 때문에 좀 더 유연한 ObjectAnimator.

관련 자료

  • 이전 열 Apexcharts 차트의 최소 높이 또는 너비 설정
  • 다음 Hello World with gitlab ce docker container running on local ubuntu