# calculateWindowSizeClass

Common/AllAndroid/JVM

## Functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` | `@https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/ExperimentalMaterial3WindowSizeClassApi @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/calculateWindowSizeClass.composable#calculateWindowSizeClass(android.app.Activity)(activity: https://developer.android.com/reference/android/app/Activity.html)` Calculates the window's `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` for the provided `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/package-summary#calculateWindowSizeClass(android.app.Activity)`. | android |

## Functions

### calculateWindowSizeClass

android Artifact: [androidx.compose.material3:material3-window-size-class](https://developer.android.com/jetpack/androidx/releases/compose-material3) [View Source](https://cs.android.com/search?q=file:androidx/compose/material3/windowsizeclass/AndroidWindowSizeClass.android.kt+function:calculateWindowSizeClass)

```
@ExperimentalMaterial3WindowSizeClassApi
@Composable
fun calculateWindowSizeClass(activity: Activity): WindowSizeClass
```

Calculates the window's `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` for the provided `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/package-summary#calculateWindowSizeClass(android.app.Activity)`.

A new `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` will be returned whenever a configuration change causes the width or height of the window to cross a breakpoint, such as when the device is rotated or the window is resized.

```kotlin
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass
import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass

class MyActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            // Calculate the window size class for the activity's current window. If the window
            // size changes, for example when the device is rotated, the value returned by
            // calculateSizeClass will also change.
            val windowSizeClass = calculateWindowSizeClass(this)
            // Perform logic on the window size class to decide whether to use a nav rail.
            val useNavRail = windowSizeClass.widthSizeClass > WindowWidthSizeClass.Compact

            // MyScreen knows nothing about window size classes, and performs logic based on a
            // Boolean flag.
            MyScreen(useNavRail = useNavRail)
        }
    }
}
```