-
-
Notifications
You must be signed in to change notification settings - Fork 87
/
snackbar.kt
122 lines (112 loc) · 3.56 KB
/
snackbar.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package co.joebirch.composeplayground.material
import androidx.compose.material.Text
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import co.joebirch.composeplayground.ComposableLayout
object SnackbarView : ComposableLayout {
@Composable
override fun build() {
Box(
modifier = Modifier
.fillMaxSize()
.padding(16.dp)
.background(Color.LightGray)
) {
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.SpaceEvenly,
horizontalAlignment = Alignment.CenterHorizontally
) {
MinimalSnackbarComponent()
ActionSnackbarComponent()
ActionOnNewLineSnackbarComponent()
}
}
}
@Composable
fun MinimalSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") }
)
}
@Composable
fun ShapeSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") },
shape = RoundedCornerShape(4.dp)
)
}
@Composable
fun BackgroundColorSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") },
backgroundColor = Color.White
)
}
@Composable
fun ContentColorSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") },
contentColor = Color.Gray
)
}
@Composable
fun ElevationSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") },
elevation = 8.dp
)
}
@Composable
fun ActionSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar!") },
action = {
Text(
text = "Undo",
modifier = Modifier
.padding(end = 16.dp)
.clickable(onClick = {
// handle action
}),
style = TextStyle(
fontWeight = FontWeight.Bold,
color = MaterialTheme.colors.primary
)
)
}
)
}
@Composable
fun ActionOnNewLineSnackbarComponent() {
Snackbar(
content = { Text(text = "This is a snackbar with a lot of text, that way it makes sense to use the new line!") },
action = {
Text(
text = "Undo",
modifier = Modifier
.padding(end = 16.dp)
.clickable(onClick = {
// Handle action
}),
style = TextStyle(
fontWeight = FontWeight.Bold,
color = MaterialTheme.colors.primary
)
)
},
actionOnNewLine = true
)
}
}