DeviceConfigurationOverride

Composable Function

Common
@Composable
fun DeviceConfigurationOverride(
    override: DeviceConfigurationOverride,
    content: @Composable () -> Unit,
) = override.Override(content)

Applies DeviceConfigurationOverride to the content under test to apply some configuration override.

This can be useful to locally test behavior in isolation that depends on properties that are normally device-wide, such as font scale, screen size and layout direction.

Code Examples

DeviceConfigurationOverrideFontScaleSample

@Composable
fun DeviceConfigurationOverrideFontScaleSample() {
    DeviceConfigurationOverride(DeviceConfigurationOverride.FontScale(1.5f)) {
        MyScreen() // will be rendered with a larger than default font scale
    }
}

DeviceConfigurationOverrideForcedSizeSample

@Composable
fun DeviceConfigurationOverrideForcedSizeSample() {
    DeviceConfigurationOverride(DeviceConfigurationOverride.ForcedSize(DpSize(1280.dp, 800.dp))) {
        MyScreen() // will be rendered in the space for 1280dp by 800dp without clipping
    }
}

DeviceConfigurationOverrideLayoutDirectionSample

@Composable
fun DeviceConfigurationOverrideLayoutDirectionSample() {
    DeviceConfigurationOverride(DeviceConfigurationOverride.LayoutDirection(LayoutDirection.Rtl)) {
        MyComponent() // will be rendered with a right-to-left layout direction
    }
}