Untitled
unknown
plain_text
14 days ago
6.9 kB
4
Indexable
package lnt.geospatial.egeospatial.screens import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowDropDown import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp class zoneDma { @Composable fun PopUpFilterContent( layerOptions: List<String>, zoneOptions: List<String>, dmaOptions: List<String>, selectedLayer: MutableState<String?>, selectedZone: MutableState<String?>, selectedDma: MutableState<String?>, onLayerSelected: (String) -> Unit, onZoneSelected: (String) -> Unit, onDmaSelected: (String) -> Unit, onSelectClick: () -> Unit ) { Box(contentAlignment = Alignment.Center, modifier = Modifier .fillMaxSize() // .width(350.dp) .background( color = Color.Black.copy(alpha = 0.3f) // shape = RoundedCornerShape(30.dp) ) // .border(2.dp, Color.White, RoundedCornerShape(30.dp)) // .padding(start = 5.dp, end = 5.dp, top = 30.dp, bottom = 30.dp) .padding(5.dp) .wrapContentHeight(Alignment.CenterVertically) // .clip(RoundedCornerShape(30.dp)) ) { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier .width(350.dp) .background(color = Color.White, shape = RoundedCornerShape(20.dp)) .border(2.dp, Color.White, RoundedCornerShape(20.dp)) .padding(start = 5.dp, end = 5.dp, top = 5.dp, bottom = 5.dp) .wrapContentHeight() .clip(RoundedCornerShape(30.dp)) // .align(Alignment.Center) ) { Text( text = "Select Options", fontSize = 18.sp, fontWeight = FontWeight.Bold, modifier = Modifier.padding(top= 8.dp, bottom = 8.dp, start =8.dp) .align(Alignment.Start) ) Spacer(modifier = Modifier.height(10.dp)) FilterRow("Type :", layerOptions, selectedLayer, onLayerSelected) FilterRow("Zone :", zoneOptions, selectedZone, onZoneSelected) FilterRow("DMA :", dmaOptions, selectedDma, onDmaSelected) Button(onClick = { onSelectClick() }, colors = ButtonDefaults.buttonColors( containerColor = Color(0xFF00796B), ), shape = RectangleShape, modifier = Modifier .padding(2.dp) .align(Alignment.CenterHorizontally)) { Text("Select") } } } } @Composable fun FilterRow( label: String, options: List<String>, selectedOption: MutableState<String?>, onOptionSelected: (String) -> Unit ) { Row( modifier = Modifier .fillMaxWidth() .padding(bottom = 8.dp) .background(Color.White), verticalAlignment = Alignment.CenterVertically ) { Text( text = label, fontSize = 18.sp, fontWeight = FontWeight.Bold, color = Color.Gray, modifier = Modifier.padding(end = 5.dp) ) DropdownMenuSpinner( options = options, selectedOption = selectedOption, onOptionSelected = onOptionSelected ) } } @Composable fun DropdownMenuSpinner( options: List<String>, selectedOption: MutableState<String?>, onOptionSelected: (String) -> Unit ) { var expanded by remember { mutableStateOf(false) } Box(modifier = Modifier .fillMaxWidth() .clickable { expanded = true } .background(Color.White) .padding(8.dp) ) { Row { selectedOption.value?.let { Text( text = it, modifier = Modifier.weight(1f) ) } Icon( imageVector = Icons.Default.ArrowDropDown, contentDescription = "Dropdown Icon", tint = Color.LightGray) } // Text(text = selectedOption) DropdownMenu( expanded = expanded, onDismissRequest = { expanded = false } ) { options.forEach { option -> DropdownMenuItem(text = { Text(option) }, onClick = { onOptionSelected(option) selectedOption.value = option expanded = false }) // { // Text(text = option) // } } } } } }
Editor is loading...
Leave a Comment