package
com.example.newcanaryproject
import
android.os.Bundle
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.background
import
androidx.compose.foundation.border
import
androidx.compose.foundation.layout.*
import
androidx.compose.foundation.shape.RoundedCornerShape
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.*
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.*
import
androidx.compose.ui.window.Popup
import
androidx.compose.ui.window.PopupProperties
import
com.example.newcanaryproject.ui.theme.*
class
MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"Pop Up in Android"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
PopupWindowDialog()
}
}
}
}
}
}
@Composable
fun PopupWindowDialog() {
val openDialog = remember { mutableStateOf(
false
) }
val buttonTitle = remember {
mutableStateOf(
"Show Pop Up"
)
}
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal =
20
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Button(
modifier = Modifier
.fillMaxWidth()
.padding(
10
.dp),
onClick = {
openDialog.value = !openDialog.value
if
(!openDialog.value) {
buttonTitle.value =
"Show Pop Up"
}
}
) {
Text(text = buttonTitle.value, modifier = Modifier.padding(
3
.dp))
}
Box {
val popupWidth =
300
.dp
val popupHeight =
100
.dp
if
(openDialog.value) {
buttonTitle.value =
"Hide Pop Up"
Popup(
alignment = Alignment.TopCenter,
properties = PopupProperties()
) {
Box(
Modifier
.size(popupWidth, popupHeight)
.padding(top =
5
.dp)
.background(greenColor, RoundedCornerShape(
10
.dp))
.border(
1
.dp, color = Color.Black, RoundedCornerShape(
10
.dp))
) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal =
20
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(
text =
"Welcome to Geeks for Geeks"
,
color = Color.White,
modifier = Modifier.padding(vertical =
5
.dp),
fontSize =
16
.sp
)
}
}
}
}
}
}
}