1
1
package com.holix.android.bottomsheetdialogcomposedemo
2
2
3
3
import android.os.Bundle
4
+ import android.util.Log
4
5
import androidx.activity.compose.setContent
5
6
import androidx.appcompat.app.AppCompatActivity
6
7
import androidx.compose.foundation.isSystemInDarkTheme
@@ -28,15 +29,28 @@ class MainActivity : AppCompatActivity() {
28
29
lightColors()
29
30
}
30
31
) {
32
+ var dismissOnBackPress by rememberSaveable {
33
+ mutableStateOf(true )
34
+ }
35
+ var dismissOnClickOutside by rememberSaveable {
36
+ mutableStateOf(true )
37
+ }
38
+ var dismissWithAnimation by rememberSaveable {
39
+ mutableStateOf(false )
40
+ }
31
41
var showBottomSheetDialog by rememberSaveable {
32
42
mutableStateOf(false )
33
43
}
34
44
if (showBottomSheetDialog) {
35
45
BottomSheetDialog (
36
46
onDismissRequest = {
47
+ Log .d(" [BottomSheetDialog]" , " onDismissRequest" )
37
48
showBottomSheetDialog = false
38
49
},
39
50
properties = BottomSheetDialogProperties (
51
+ dismissOnBackPress = dismissOnBackPress,
52
+ dismissOnClickOutside = dismissOnClickOutside,
53
+ dismissWithAnimation = dismissWithAnimation,
40
54
navigationBarColor = MaterialTheme .colors.surface
41
55
)
42
56
) {
@@ -57,12 +71,55 @@ class MainActivity : AppCompatActivity() {
57
71
}
58
72
}
59
73
}
60
- Box (
61
- modifier = Modifier .fillMaxSize(),
62
- contentAlignment = Alignment .Center
63
- ) {
64
- Button (onClick = { showBottomSheetDialog = true }) {
65
- Text (text = " Show" )
74
+ Surface {
75
+ Box (
76
+ modifier = Modifier .fillMaxSize(),
77
+ contentAlignment = Alignment .Center
78
+ ) {
79
+ Column (
80
+ verticalArrangement = Arrangement .spacedBy(16 .dp),
81
+ horizontalAlignment = Alignment .CenterHorizontally
82
+ ) {
83
+ Row (
84
+ verticalAlignment = Alignment .CenterVertically ,
85
+ horizontalArrangement = Arrangement .spacedBy(8 .dp)
86
+ ) {
87
+ Text (text = " dismissOnBackPress" )
88
+ Switch (
89
+ checked = dismissOnBackPress,
90
+ onCheckedChange = {
91
+ dismissOnBackPress = it
92
+ }
93
+ )
94
+ }
95
+ Row (
96
+ verticalAlignment = Alignment .CenterVertically ,
97
+ horizontalArrangement = Arrangement .spacedBy(8 .dp)
98
+ ) {
99
+ Text (text = " dismissOnClickOutside" )
100
+ Switch (
101
+ checked = dismissOnClickOutside,
102
+ onCheckedChange = {
103
+ dismissOnClickOutside = it
104
+ }
105
+ )
106
+ }
107
+ Row (
108
+ verticalAlignment = Alignment .CenterVertically ,
109
+ horizontalArrangement = Arrangement .spacedBy(8 .dp)
110
+ ) {
111
+ Text (text = " dismissWithAnimation" )
112
+ Switch (
113
+ checked = dismissWithAnimation,
114
+ onCheckedChange = {
115
+ dismissWithAnimation = it
116
+ }
117
+ )
118
+ }
119
+ Button (onClick = { showBottomSheetDialog = true }) {
120
+ Text (text = " Show" )
121
+ }
122
+ }
66
123
}
67
124
}
68
125
}
0 commit comments