-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathSnackBarActivity.kt
More file actions
94 lines (85 loc) · 3.31 KB
/
SnackBarActivity.kt
File metadata and controls
94 lines (85 loc) · 3.31 KB
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
package com.demo.jetpackcomposedemo
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Snackbar
import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.sp
import com.demo.jetpackcomposedemo.ui.theme.AppTheme
import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AppTheme {
ScaffoldSimpleSnackBar()
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@Preview(
showBackground = true, device = "id:pixel_7_pro", showSystemUi = true, name = "First View"
)
@Composable
private fun ScaffoldSimpleSnackBar() {
val snackbarHostState = remember {
SnackbarHostState()
}
val scope = rememberCoroutineScope()
Scaffold(
snackbarHost = {
SnackbarHost(snackbarHostState) { data ->
Snackbar {
Text(
text = data.visuals.message,
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
}
}
},
floatingActionButton = {
ExtendedFloatingActionButton(onClick = {
scope.launch {
val longmsg =
"VeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVeryVery Long msg"
snackbarHostState.showSnackbar(
message = longmsg,
actionLabel = "Action",
withDismissAction = true,
duration = SnackbarDuration.Indefinite
)
}
}) {
Text(text = "Click Me")
}
},
content = { innerpadding ->
Text(
text = "Pixel Developer",
modifier = Modifier
.padding(innerpadding)
.fillMaxSize()
.wrapContentSize(),
fontSize = 30.sp
)
}
)
}
}