@@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Arrangement
55import androidx.compose.foundation.layout.Box
66import androidx.compose.foundation.layout.Column
77import androidx.compose.foundation.layout.WindowInsets
8- import androidx.compose.foundation.layout.fillMaxSize
98import androidx.compose.foundation.layout.fillMaxWidth
109import androidx.compose.foundation.layout.padding
1110import androidx.compose.foundation.layout.safeDrawing
@@ -17,10 +16,14 @@ import androidx.compose.material.icons.automirrored.filled.ArrowForward
1716import androidx.compose.material.icons.filled.Check
1817import androidx.compose.material3.Icon
1918import androidx.compose.material3.IconButton
19+ import androidx.compose.material3.MaterialTheme
2020import androidx.compose.material3.Scaffold
2121import androidx.compose.material3.Text
2222import androidx.compose.material3.TextButton
2323import androidx.compose.runtime.Composable
24+ import androidx.compose.runtime.derivedStateOf
25+ import androidx.compose.runtime.getValue
26+ import androidx.compose.runtime.remember
2427import androidx.compose.runtime.rememberCoroutineScope
2528import androidx.compose.ui.Alignment
2629import androidx.compose.ui.Modifier
@@ -41,43 +44,43 @@ fun TutorialScreen(onComplete: () -> Unit) {
4144 contentWindowInsets = WindowInsets .safeDrawing,
4245 ) { padding ->
4346 Column (
44- modifier = Modifier .padding(padding),
47+ modifier = Modifier
48+ .padding(padding)
49+ .padding(horizontal = 16 .dp),
4550 verticalArrangement = Arrangement .Center
4651 ) {
4752 Box (
4853 modifier = Modifier .fillMaxWidth()
4954 ) {
5055 TextButton (
5156 onClick = { onComplete() },
52- modifier = Modifier
53- .align(Alignment .TopEnd )
54- .padding(end = 16 .dp)
57+ modifier = Modifier .align(Alignment .TopEnd )
5558 ) {
56- Text (" Skip" )
59+ Text (
60+ text = " Skip" ,
61+ style = MaterialTheme .typography.bodyLarge,
62+ )
5763 }
5864 }
5965
6066 HorizontalPager (
6167 state = pagerState,
62- modifier = Modifier .weight(1f )
68+ modifier = Modifier .weight(1f ),
6369 ) { page ->
64- Box (
65- modifier = Modifier
66- .fillMaxSize()
67- .padding(16 .dp),
68- contentAlignment = Alignment .Center
69- ) {
70- val isPageFullyVisible = pagerState.currentPage == page &&
71- pagerState.currentPageOffsetFraction.absoluteValue < 0.1f
72-
73- TutorialPage (
74- iconId = pagerContent[page].iconId,
75- previewId = pagerContent[page].previewId,
76- title = pagerContent[page].title,
77- description = pagerContent[page].description,
78- isVisible = isPageFullyVisible,
79- )
70+ val isPageFullyVisible by remember {
71+ derivedStateOf {
72+ pagerState.currentPage == page &&
73+ pagerState.currentPageOffsetFraction.absoluteValue < 0.1f
74+ }
8075 }
76+
77+ TutorialPage (
78+ iconId = pagerContent[page].iconId,
79+ previewId = pagerContent[page].previewId,
80+ title = pagerContent[page].title,
81+ description = pagerContent[page].description,
82+ isVisible = isPageFullyVisible,
83+ )
8184 }
8285
8386 Box (
@@ -89,9 +92,7 @@ fun TutorialScreen(onComplete: () -> Unit) {
8992 pagerState.animateScrollToPage(pagerState.currentPage - 1 )
9093 }
9194 },
92- modifier = Modifier
93- .align(Alignment .CenterStart )
94- .padding(start = 16 .dp)
95+ modifier = Modifier .align(Alignment .CenterStart )
9596 ) {
9697 Icon (
9798 imageVector = Icons .AutoMirrored .Filled .ArrowBack ,
@@ -114,9 +115,7 @@ fun TutorialScreen(onComplete: () -> Unit) {
114115 onComplete()
115116 }
116117 },
117- modifier = Modifier
118- .align(Alignment .CenterEnd )
119- .padding(end = 16 .dp)
118+ modifier = Modifier .align(Alignment .CenterEnd )
120119 ) {
121120 Icon (
122121 imageVector = if (pagerState.currentPage < pagerState.pageCount - 1 )
0 commit comments