반응형
Intent로 화면을 전환할 때, 간혹 기획에 따라 전환 애니메이션이 필요한 경우가 존재합니다.
이럴 때에는 anim 리소스를 정의하고, overridePendingTransition() 메서드를 활용해 주면 됩니다.
오른쪽에서 나타나 왼쪽으로 사라지는 애니메이션 리소스 파일입니다.
<!--slide_in_right--!>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="150"
android:fromXDelta="100%"
android:toXDelta="0%" />
</set>
<!--slide_out_left--!>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="150"
android:fromXDelta="0%"
android:toXDelta="-100%" />
</set>
실제 Intent 호출 시에는 아래처럼 정의해줍니다.
startActivity(Intent(activity, StoreItemListActivity::class.java))
activity?.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
하지만 API 34부터는 해당 메서드가 deprecated 되어서 overrideActivityTransition() 메서드를 사용해 줍니다.
https://stackoverflow.com/questions/77426085/overridependingtransition-is-deprecated-how-do-i-do
overridePendingTransition is deprecated, how do i do?
There is an animation playing when i finish a child activity or when the main one resume, im not sure which event is triggering it but i would like to replace it. Im targeting api level 34 with a min
stackoverflow.com
overrideActivityTransition(OVERRIDE_TRANSITION_OPEN, R.anim.slide_in_right, R.anim.slide_out_left)
반응형