Creating animations, converting Compose UI elements into XML layouts, and automatically replacing all Views with Compose components do not describe embedding Views inside Compose. Only embedding traditional Android Views inside a Compose UI correctly states the purpose.
Final Answer:
To embed traditional Android Views inside a Compose UI -> Option D
2. Which of the following is the correct way to add a Compose UI inside an existing Android View hierarchy?
easy
A. Use AndroidView inside the View XML layout
B. Use ComposeView inside the View hierarchy
C. Replace the View with a Compose function directly
D. Use setContentView with Compose functions
Solution
Step 1: Identify ComposeView usage
ComposeView is a View that hosts Compose UI inside a traditional View hierarchy.
Step 2: Eliminate wrong options
Use AndroidView inside the View XML layout is wrong because AndroidView is for Compose to View embedding, not View XML. Replace the View with a Compose function directly is invalid as Views cannot be replaced directly by Compose functions. Use setContentView with Compose functions is for setting Compose as the whole content, not embedding.
Final Answer:
Use ComposeView inside the View hierarchy -> Option B
Quick Check:
ComposeView = Compose inside Views [OK]
Hint: ComposeView hosts Compose inside Views [OK]
Common Mistakes:
Using AndroidView to embed Compose in Views
Trying to replace Views with Compose functions directly
Confusing setContentView with embedding Compose
3. What will be displayed when the following Compose code runs?
AndroidView(factory = { context ->
Button(context).apply {
text = "Click Me"
}
})
medium
A. An empty space because Button is not a Compose component
B. A Compose Button with text "Click Me"
C. A traditional Android Button with text "Click Me" inside Compose
D. A runtime error because Button cannot be used inside AndroidView
Solution
Step 1: Analyze AndroidView factory
The factory creates a traditional Android Button with text "Click Me" inside Compose UI.
Step 2: Understand output
AndroidView embeds the View, so the Button is shown as a View inside Compose, not a Compose Button.
Final Answer:
A traditional Android Button with text "Click Me" inside Compose -> Option C
Quick Check:
AndroidView shows Views inside Compose [OK]
Hint: AndroidView shows Views, not Compose components [OK]
Common Mistakes:
Thinking AndroidView creates Compose components
Expecting runtime error for Button usage
Confusing Android Button with Compose Button
4. Identify the error in this Compose code embedding a View:
A. Cannot set text inside the trailing lambda; it should be inside factory
B. TextView does not exist in Android Views
C. Missing import for AndroidView
D. Factory lambda must return null
Solution
Step 1: Check AndroidView usage
The trailing lambda is for updating the View, but text is not a Compose property; it should be set on the View inside the factory or update block.
Step 2: Identify correct usage
Setting text outside the factory like this causes error because text is not recognized in that scope.
Final Answer:
Cannot set text inside the trailing lambda; it should be inside factory -> Option A
Quick Check:
Set View properties inside factory or update lambda [OK]
Hint: Set View properties inside factory or update lambda [OK]
Common Mistakes:
Trying to set View properties directly in trailing lambda
Assuming trailing lambda is Compose scope
Ignoring factory return value requirements
5. You want to gradually migrate an app from Views to Compose. Which approach correctly mixes Compose and Views for a smooth transition?
hard
A. Use ComposeView to add Compose UI inside existing View layouts and AndroidView to add Views inside Compose screens
B. Rewrite all Views to Compose before running the app
C. Use only AndroidView everywhere to avoid Compose
D. Replace setContentView with Compose functions and remove all Views immediately
Solution
Step 1: Understand gradual migration
Gradual migration means mixing Compose and Views without rewriting everything at once.
Step 2: Identify correct interop usage
ComposeView embeds Compose inside Views; AndroidView embeds Views inside Compose. Using both allows smooth transition.
Step 3: Eliminate wrong options
Rewriting all Views to Compose before running the app, using only AndroidView everywhere to avoid Compose, and replacing setContentView with Compose functions and removing all Views immediately are extreme or incorrect approaches that do not support gradual migration.
Final Answer:
Use ComposeView to add Compose UI inside existing View layouts and AndroidView to add Views inside Compose screens -> Option A
Quick Check:
ComposeView + AndroidView = smooth migration [OK]
Hint: Use ComposeView and AndroidView together for migration [OK]
Common Mistakes:
Trying to rewrite entire app at once
Using only AndroidView or only ComposeView
Removing Views before Compose is ready
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.