@@ -40,7 +40,9 @@ import androidx.compose.foundation.layout.fillMaxWidth
4040import androidx.compose.foundation.layout.height
4141import androidx.compose.foundation.layout.padding
4242import androidx.compose.foundation.layout.width
43+ import androidx.compose.foundation.rememberScrollState
4344import androidx.compose.foundation.shape.RoundedCornerShape
45+ import androidx.compose.foundation.verticalScroll
4446import androidx.compose.material.icons.Icons
4547import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft
4648import androidx.compose.material.icons.filled.PlayArrow
@@ -84,6 +86,7 @@ import androidx.compose.ui.graphics.nativeCanvas
8486import androidx.compose.ui.graphics.toArgb
8587import androidx.compose.ui.graphics.vector.ImageVector
8688import androidx.compose.ui.graphics.vector.path
89+ import androidx.compose.ui.input.nestedscroll.nestedScroll
8790import androidx.compose.ui.platform.LocalContext
8891import androidx.compose.ui.res.stringResource
8992import androidx.compose.ui.text.TextStyle
@@ -98,6 +101,10 @@ import androidx.compose.ui.tooling.preview.Preview
98101import androidx.compose.ui.unit.dp
99102import androidx.compose.ui.unit.sp
100103import androidx.navigation.NavController
104+ import dev.chrisbanes.haze.HazeDefaults
105+ import dev.chrisbanes.haze.HazeState
106+ import dev.chrisbanes.haze.haze
107+ import dev.chrisbanes.haze.hazeChild
101108import kotlinx.coroutines.CoroutineScope
102109import kotlinx.coroutines.delay
103110import kotlinx.coroutines.launch
@@ -124,9 +131,23 @@ fun HeadTrackingScreen(navController: NavController) {
124131 val isDarkTheme = isSystemInDarkTheme()
125132 val backgroundColor = if (isDarkTheme) Color (0xFF1C1C1E ) else Color (0xFFFFFFFF )
126133 val textColor = if (isDarkTheme) Color .White else Color .Black
134+
135+ val scrollState = rememberScrollState()
136+ val scrollBehavior = TopAppBarDefaults .pinnedScrollBehavior()
137+ val hazeState = remember { HazeState () }
138+
127139 Scaffold (
140+ modifier = Modifier .nestedScroll(scrollBehavior.nestedScrollConnection),
128141 topBar = {
129142 CenterAlignedTopAppBar (
143+ modifier = Modifier .hazeChild(
144+ state = hazeState,
145+ style = HazeDefaults .style(
146+ backgroundColor = if (isDarkTheme) Color (0xFF000000 ).copy(alpha = 0.7f )
147+ else Color (0xFFF2F2F7 ).copy(alpha = 0.7f ),
148+ tint = Color .White .copy(alpha = 0.2f )
149+ )
150+ ),
130151 title = {
131152 Text (
132153 stringResource(R .string.head_tracking),
@@ -162,7 +183,7 @@ fun HeadTrackingScreen(navController: NavController) {
162183 )
163184 }
164185 },
165- colors = TopAppBarDefaults .topAppBarColors (
186+ colors = TopAppBarDefaults .centerAlignedTopAppBarColors (
166187 containerColor = Color .Transparent
167188 ),
168189 actions = {
@@ -211,7 +232,8 @@ fun HeadTrackingScreen(navController: NavController) {
211232 modifier = Modifier .scale(1.5f )
212233 )
213234 }
214- }
235+ },
236+ scrollBehavior = scrollBehavior
215237 )
216238 },
217239 containerColor = if (isSystemInDarkTheme()) Color (0xFF000000 )
@@ -223,6 +245,11 @@ fun HeadTrackingScreen(navController: NavController) {
223245 .padding(paddingValues = paddingValues)
224246 .padding(horizontal = 16 .dp)
225247 .padding(top = 8 .dp)
248+ .verticalScroll(scrollState)
249+ .haze(
250+ state = hazeState,
251+ style = HazeDefaults .style(backgroundColor = Color .Transparent )
252+ )
226253 ) {
227254 val sharedPreferences =
228255 LocalContext .current.getSharedPreferences(" settings" , Context .MODE_PRIVATE )
@@ -311,7 +338,7 @@ fun HeadTrackingScreen(navController: NavController) {
311338
312339 Box (
313340 contentAlignment = Alignment .Center ,
314- modifier = Modifier .padding(top = 12 .dp)
341+ modifier = Modifier .padding(top = 12 .dp, bottom = 24 .dp )
315342 ) {
316343 AnimatedContent (
317344 targetState = gestureText,
0 commit comments