Skip to content

Commit 72a9fca

Browse files
committed
Clean up landing screens, using Scaffold and list items.
1 parent c3505e9 commit 72a9fca

File tree

2 files changed

+59
-44
lines changed

2 files changed

+59
-44
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/components/ComponentsScreen.kt

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,45 +16,63 @@
1616

1717
package com.example.compose.snippets.components
1818

19+
import androidx.compose.foundation.clickable
1920
import androidx.compose.foundation.layout.Arrangement
21+
import androidx.compose.foundation.layout.Column
2022
import androidx.compose.foundation.layout.fillMaxSize
2123
import androidx.compose.foundation.layout.padding
2224
import androidx.compose.foundation.lazy.LazyColumn
2325
import androidx.compose.foundation.lazy.items
2426
import androidx.compose.material3.Button
27+
import androidx.compose.material3.ExperimentalMaterial3Api
28+
import androidx.compose.material3.HorizontalDivider
29+
import androidx.compose.material3.ListItem
30+
import androidx.compose.material3.Scaffold
2531
import androidx.compose.material3.Text
32+
import androidx.compose.material3.TopAppBar
2633
import androidx.compose.runtime.Composable
2734
import androidx.compose.ui.Alignment
2835
import androidx.compose.ui.Modifier
2936
import androidx.compose.ui.unit.dp
3037
import com.example.compose.snippets.navigation.TopComponentsDestination
3138

39+
@OptIn(ExperimentalMaterial3Api::class)
3240
@Composable
3341
fun ComponentsScreen(
3442
navigate: (TopComponentsDestination) -> Unit
3543
) {
36-
LazyColumn(
37-
modifier = Modifier
38-
.padding(16.dp)
39-
.fillMaxSize(),
40-
verticalArrangement = Arrangement.spacedBy(8.dp),
41-
horizontalAlignment = Alignment.CenterHorizontally,
42-
) {
43-
items(TopComponentsDestination.entries) { destination ->
44-
NavigationItem(destination) {
45-
navigate(
46-
destination
47-
)
44+
Scaffold(topBar = {
45+
TopAppBar(title = {
46+
Text("Common Components")
47+
})
48+
}, content = { padding ->
49+
LazyColumn(
50+
modifier = Modifier
51+
.padding(padding)
52+
.fillMaxSize(),
53+
verticalArrangement = Arrangement.spacedBy(8.dp),
54+
horizontalAlignment = Alignment.CenterHorizontally,
55+
) {
56+
items(TopComponentsDestination.entries) { destination ->
57+
NavigationItem(destination) {
58+
navigate(
59+
destination
60+
)
61+
}
4862
}
4963
}
50-
}
64+
})
65+
5166
}
5267

5368
@Composable
5469
fun NavigationItem(destination: TopComponentsDestination, onClick: () -> Unit) {
55-
Button(
56-
onClick = { onClick() }
57-
) {
58-
Text(destination.title)
59-
}
70+
ListItem(
71+
headlineContent = {
72+
Text(destination.title)
73+
},
74+
modifier = Modifier.clickable {
75+
onClick()
76+
}
77+
)
6078
}

compose/snippets/src/main/java/com/example/compose/snippets/landing/LandingScreen.kt

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ import androidx.compose.foundation.layout.heightIn
2626
import androidx.compose.foundation.layout.padding
2727
import androidx.compose.foundation.lazy.LazyColumn
2828
import androidx.compose.foundation.lazy.items
29+
import androidx.compose.material3.ExperimentalMaterial3Api
2930
import androidx.compose.material3.HorizontalDivider
31+
import androidx.compose.material3.ListItem
32+
import androidx.compose.material3.Scaffold
3033
import androidx.compose.material3.Text
34+
import androidx.compose.material3.TopAppBar
3135
import androidx.compose.runtime.Composable
3236
import androidx.compose.ui.Alignment
3337
import androidx.compose.ui.Modifier
@@ -38,36 +42,29 @@ import androidx.compose.ui.unit.dp
3842
import androidx.compose.ui.unit.sp
3943
import com.example.compose.snippets.navigation.Destination
4044

45+
@OptIn(ExperimentalMaterial3Api::class)
4146
@Composable
4247
fun LandingScreen(
4348
navigate: (Destination) -> Unit
4449
) {
45-
Column(
46-
modifier = Modifier
47-
.padding(16.dp)
48-
.fillMaxSize(),
49-
verticalArrangement = Arrangement.spacedBy(24.dp),
50-
) {
51-
Text(
52-
modifier = Modifier.fillMaxWidth(),
53-
style = TextStyle(
54-
fontSize = 24.sp,
55-
fontWeight = FontWeight.Bold,
56-
textAlign = TextAlign.Center,
57-
),
58-
text = "Android snippets",
59-
)
60-
Text(
61-
text = "Use the following buttons to view a selection of the snippets used in the Android documentation."
62-
)
63-
NavigationItems { navigate(it) }
50+
Scaffold(
51+
topBar = {
52+
TopAppBar(title = {
53+
Text(text = "Android snippets",)
54+
})
55+
}
56+
) { padding ->
57+
NavigationItems(modifier = Modifier.padding(padding)) { navigate(it) }
6458
}
6559
}
6660

6761
@Composable
68-
fun NavigationItems(navigate: (Destination) -> Unit) {
62+
fun NavigationItems(
63+
modifier: Modifier = Modifier,
64+
navigate: (Destination) -> Unit
65+
) {
6966
LazyColumn(
70-
modifier = Modifier
67+
modifier = modifier
7168
.fillMaxSize(),
7269
verticalArrangement = Arrangement.spacedBy(8.dp),
7370
horizontalAlignment = Alignment.CenterHorizontally,
@@ -84,14 +81,14 @@ fun NavigationItems(navigate: (Destination) -> Unit) {
8481

8582
@Composable
8683
fun NavigationItem(destination: Destination, onClick: () -> Unit) {
87-
Box(
84+
ListItem(
85+
headlineContent = {
86+
Text(destination.title)
87+
},
8888
modifier = Modifier
8989
.heightIn(min = 48.dp)
9090
.clickable {
9191
onClick()
9292
}
93-
) {
94-
Text(destination.title)
95-
HorizontalDivider(modifier = Modifier.align(Alignment.BottomCenter))
96-
}
93+
)
9794
}

0 commit comments

Comments
 (0)