From 7955c4b6794526d989b424e1cd622010b6ffc487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Mon, 26 May 2025 11:47:57 +0300 Subject: [PATCH] select --- .../src/main/java/com/example/libary/Modal.kt | 19 ++++ .../main/java/com/example/libary/Select.kt | 88 +++++++++++++++++++ libary/src/main/res/drawable/dr_1.xml | 13 +++ 3 files changed, 120 insertions(+) create mode 100644 libary/src/main/java/com/example/libary/Modal.kt create mode 100644 libary/src/main/java/com/example/libary/Select.kt create mode 100644 libary/src/main/res/drawable/dr_1.xml diff --git a/libary/src/main/java/com/example/libary/Modal.kt b/libary/src/main/java/com/example/libary/Modal.kt new file mode 100644 index 0000000..5ef2666 --- /dev/null +++ b/libary/src/main/java/com/example/libary/Modal.kt @@ -0,0 +1,19 @@ +package com.example.libary + +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.ModalBottomSheet +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ModalWindow( + modifier: Modifier = Modifier, + content: @Composable () -> Unit +) { + ModalBottomSheet( + onDismissRequest = {} + ) { + content() + } +} \ No newline at end of file diff --git a/libary/src/main/java/com/example/libary/Select.kt b/libary/src/main/java/com/example/libary/Select.kt new file mode 100644 index 0000000..735e308 --- /dev/null +++ b/libary/src/main/java/com/example/libary/Select.kt @@ -0,0 +1,88 @@ +package com.example.libary + +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.material3.TextFieldDefaults +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.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun Select( + modifier: Modifier = Modifier, + value: MutableState, + data: List, + placeholder: String = "" +) { + var modal by remember { mutableStateOf(false) } + + OutlinedTextField( + value = value.value, + onValueChange = {}, + modifier = modifier, + shape = AbsoluteRoundedCornerShape(10.dp), + placeholder = { + Text( + text = placeholder, + fontWeight = FontWeight.W400, + fontSize = 16.sp, + color = Color(0xFF939396) + ) + }, + colors = TextFieldDefaults.colors( + focusedPlaceholderColor = Color(0xFF939396), + unfocusedPlaceholderColor = Color(0xFF939396), + focusedTextColor = Color.Black, + unfocusedTextColor = Color.Black, + focusedIndicatorColor = Color(0xFFEBEBEB), + unfocusedIndicatorColor = Color(0xFFEBEBEB), + focusedContainerColor = Color(0xFFF5F5F9), + unfocusedContainerColor = Color(0xFFF5F5F9) + ), + trailingIcon = { + Image( + painter = painterResource(R.drawable.dr_1), + contentDescription = null, + modifier = Modifier.clickable { + modal = true + } + ) + } + ) + + if (modal) { + ModalWindow { + LazyColumn { + items(data) { + Text( + text = it, + fontSize = 20.sp, + fontWeight = FontWeight.W600, + modifier = Modifier.padding(5.dp) + .clickable { + value.value = it + modal = false + } + ) + HorizontalDivider() + } + } + } + } +} \ No newline at end of file diff --git a/libary/src/main/res/drawable/dr_1.xml b/libary/src/main/res/drawable/dr_1.xml new file mode 100644 index 0000000..0811ea8 --- /dev/null +++ b/libary/src/main/res/drawable/dr_1.xml @@ -0,0 +1,13 @@ + + +