Compose 布局、主题设置和动画测试

58 阅读1分钟

布局、主题设置和动画

1. Jetpack Compose transforms state into UI using the following three phase process.

  • Composition, Layout, Drawing

  • Measurement, Placement, Layout

  • Layout, Drawing, Placement

  • Placement, Composition, Layout

2. ___ executes your composable functions, which can emit UI and create a UI tree.

  • Layout

  • Placement

  • Drawing

  • Composition

3. Once all elements are measured in size during the Layout phase, the tree is walked again and all placement instructions are executed in the ___ step.

  • Measurement

  • Drawing

  • Placement

  • Composition

4. A Constraints object tells the layout:

Choose as many answers as you see fit.

  • It can be as large as it likes

  • Where to place each item

  • How small it can be

  • The maximum width and height of the layout

5. Which of the following is NOT true about the layout modifier:

  • It’s used to modify how an element is measured.

  • It’s a lambda.

  • Its content is executed during the Drawing phase.

  • It’s used to modify how an element is laid out.

6. Rendering a scrollable set of items as they become visible on the screen, rather than all at once, is the main concept behind:

  • Optimization

  • Lazy layouts

  • A scrollable column

  • The verticalScroll() modifier

7. True or False: Compose uses a single pass layout system.

  • True

  • False

Why

I think the True is: Compose uses a single pass measurement system, not single pass layout system.

8. To adjust an animation’s fraction, which lets the animating value speed up and slow down, use ___.

  • Tween

  • Stiffness

  • Easing

  • Snap

/**
 * Easing is a way to adjust an animation’s fraction. Easing allows transitioning
 * elements to speed up and slow down, rather than moving at a constant rate.
 *
 * Fraction is a value between 0 and 1.0 indicating our current point in
 * the animation where 0 represents the start and 1.0 represents the end.
 *
 * An [Easing] must map fraction=0.0 to 0.0 and fraction=1.0 to 1.0.
 */
@Stable
fun interface Easing {
    fun transform(fraction: Float): Float
}