Bird
Raised Fist0
Android Kotlinmobile~20 mins

Transition animations in Android Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Transition Animation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What is the output of this transition animation code?
Consider this Kotlin code snippet for an Android app that starts a new activity with a fade animation. What will the user see when the new activity starts?
Android Kotlin
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
AThe new activity zooms in while the old activity zooms out.
BThe new activity slides in from the right while the old activity slides out to the left.
CNo animation occurs; the new activity appears instantly.
DThe new activity fades in smoothly while the old activity fades out.
Attempts:
2 left
💡 Hint
Look at the animation resource IDs used in overridePendingTransition.
❓ lifecycle
intermediate
2:00remaining
When does the transition animation start in the activity lifecycle?
In Android, at which point in the activity lifecycle does the transition animation triggered by overridePendingTransition() begin?
AImmediately after startActivity() is called, before onCreate() of the new activity.
BAfter the new activity's onResume() method completes.
CDuring the new activity's onCreate() method execution.
DAfter the new activity's onStart() method but before onResume().
Attempts:
2 left
💡 Hint
Think about when the system switches the UI to the new activity.
🔧 Debug
advanced
2:00remaining
Why does this transition animation not work as expected?
This code is intended to slide the new activity in from the right, but the animation does not run. What is the problem?
Android Kotlin
val intent = Intent(this, NextActivity::class.java)
startActivity(intent)
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
AoverridePendingTransition must be called before startActivity.
BThe animation resource files slide_in_right and slide_out_left are missing or incorrectly defined.
CThe intent is missing flags to enable animation.
DThe activity theme disables animations by default.
Attempts:
2 left
💡 Hint
Check if the animation resource files exist and are valid XML.
❓ navigation
advanced
2:00remaining
How to apply a shared element transition between two activities?
You want to animate an image smoothly from one activity to another using a shared element transition. Which code snippet correctly starts the new activity with this transition?
A
val options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, imageView, "imageTransition")
startActivity(intent, options.toBundle())
B
startActivity(intent)
overridePendingTransition(R.anim.shared_enter, R.anim.shared_exit)
C
startActivity(intent)
window.setEnterTransition(TransitionInflater.from(this).inflateTransition(R.transition.shared_element))
D
val options = ActivityOptions.makeCustomAnimation(this, R.anim.shared_enter, R.anim.shared_exit)
startActivity(intent, options.toBundle())
Attempts:
2 left
💡 Hint
Shared element transitions require passing the shared view and a transition name.
🧠 Conceptual
expert
2:00remaining
What is the effect of calling overridePendingTransition(0, 0)?
In an Android app, what happens if you call overridePendingTransition(0, 0) immediately after startActivity()?
AThe app crashes because 0 is not a valid animation resource.
BThe system uses default slide animations for the transition.
CNo animation plays; the new activity appears instantly without any transition effect.
DThe previous activity fades out but the new activity does not fade in.
Attempts:
2 left
💡 Hint
0 means no animation resource is specified.

Practice

(1/5)
1. What is the main purpose of using overridePendingTransition in Android Kotlin apps?
easy
A. To apply custom animations when transitioning between activities
B. To change the app's theme dynamically
C. To start a new activity without animation
D. To stop all running animations in the app

Solution

  1. Step 1: Understand the role of overridePendingTransition

    This method is called right after starting a new activity to specify the enter and exit animations.
  2. Step 2: Identify its effect on activity transitions

    It customizes how the new activity appears and how the old one disappears, improving user experience.
  3. Final Answer:

    To apply custom animations when transitioning between activities -> Option A
  4. Quick Check:

    overridePendingTransition = custom animations [OK]
Hint: Remember: overridePendingTransition controls activity switch animations [OK]
Common Mistakes:
  • Thinking it changes app theme
  • Assuming it disables animations
  • Confusing it with stopping animations
2. Which of the following is the correct syntax to apply a transition animation after starting a new activity in Kotlin?
easy
A. startActivity(intent) overridePendingTransition(R.anim.slide_in, R.anim.slide_out)
B. overridePendingTransition(R.anim.slide_in, R.anim.slide_out) startActivity(intent)
C. startActivity(intent) setTransition(R.anim.slide_in, R.anim.slide_out)
D. startActivity(intent) overrideTransition(R.anim.slide_in, R.anim.slide_out)

Solution

  1. Step 1: Recall the correct order of method calls

    You must call startActivity(intent) first, then overridePendingTransition immediately after.
  2. Step 2: Verify method names and parameters

    The method is overridePendingTransition, taking two animation resource IDs for enter and exit animations.
  3. Final Answer:

    startActivity(intent) overridePendingTransition(R.anim.slide_in, R.anim.slide_out) -> Option A
  4. Quick Check:

    startActivity then overridePendingTransition [OK]
Hint: Call overridePendingTransition right after startActivity [OK]
Common Mistakes:
  • Calling overridePendingTransition before startActivity
  • Using wrong method names like setTransition
  • Passing incorrect parameters
3. Given the following code snippet in an Android Kotlin app, what animation effect will the user see when transitioning to SecondActivity?
startActivity(Intent(this, SecondActivity::class.java))
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
medium
A. No animation will occur because fade_in and fade_out are invalid
B. SecondActivity slides in from the right, current activity slides out to the left
C. SecondActivity zooms in while current activity zooms out
D. SecondActivity fades in while the current activity fades out

Solution

  1. Step 1: Understand the animation resource names

    Animations named fade_in and fade_out typically cause views to gradually appear or disappear by changing opacity.
  2. Step 2: Apply to activity transition

    The new activity will fade in, and the old activity will fade out, creating a smooth crossfade effect.
  3. Final Answer:

    SecondActivity fades in while the current activity fades out -> Option D
  4. Quick Check:

    fade_in + fade_out = crossfade effect [OK]
Hint: fade_in/out means smooth appearing/disappearing [OK]
Common Mistakes:
  • Assuming slide or zoom animations without checking names
  • Thinking no animation occurs if unsure about resource validity
  • Confusing fade with zoom or slide
4. Identify the error in the following Kotlin code snippet that tries to apply a transition animation:
startActivity(Intent(this, NextActivity::class.java))
overridePendingTransition(R.anim.slide_in_left)
medium
A. Animation resource IDs must be strings, not integers
B. Incorrect method name; should be setPendingTransition
C. Missing second animation resource parameter in overridePendingTransition
D. startActivity should be called after overridePendingTransition

Solution

  1. Step 1: Check the method signature of overridePendingTransition

    This method requires two parameters: one for the enter animation and one for the exit animation.
  2. Step 2: Identify the missing parameter

    The code only provides one animation resource, causing a compile-time error.
  3. Final Answer:

    Missing second animation resource parameter in overridePendingTransition -> Option C
  4. Quick Check:

    overridePendingTransition needs two animations [OK]
Hint: overridePendingTransition always needs two animation IDs [OK]
Common Mistakes:
  • Providing only one animation resource
  • Using wrong method names
  • Calling overridePendingTransition before startActivity
5. You want to create a smooth slide transition when moving from MainActivity to DetailActivity. You have two animation XML files: slide_in_right.xml and slide_out_left.xml in res/anim/. Which code snippet correctly applies these animations during the activity transition?
hard
A. overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) startActivity(Intent(this, DetailActivity::class.java))
B. startActivity(Intent(this, DetailActivity::class.java)) overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
C. startActivity(Intent(this, DetailActivity::class.java)) overridePendingTransition(R.anim.slide_out_left, R.anim.slide_in_right)
D. startActivity(Intent(this, DetailActivity::class.java)) overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right)

Solution

  1. Step 1: Confirm the order of method calls

    You must call startActivity first, then overridePendingTransition immediately after.
  2. Step 2: Match animations to correct enter and exit roles

    slide_in_right is the enter animation for the new activity, and slide_out_left is the exit animation for the current activity.
  3. Final Answer:

    startActivity(Intent(this, DetailActivity::class.java)) overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) -> Option B
  4. Quick Check:

    startActivity then overridePendingTransition with correct animations [OK]
Hint: Enter animation first, exit animation second after startActivity [OK]
Common Mistakes:
  • Swapping enter and exit animations
  • Calling overridePendingTransition before startActivity
  • Using wrong animation resource names
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard