Компонуемое автозаполнение, рендеринг поверх остальной части пользовательского интерфейса.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Компонуемое автозаполнение, рендеринг поверх остальной части пользовательского интерфейса.

Сообщение Anonymous »

Я продолжаю работать над составным элементом автозаполнения из составного элемента автозаполнения, не могу печатать, пока всплывающее окно видимо:

Код: Выделить всё

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AutoCompleteExample() {
Scaffold(topBar = { TopAppBar(title = { Text("AutoCompleteExample") }) }) { innerPadding ->
Column(modifier = Modifier.padding(innerPadding)) {
val names = listOf("Tony Stark", "Steve Rogers", "Bruce Banner", "Natasha Romanoff")
var name by remember { mutableStateOf("") }
val aliases = listOf("Iron Man", "Captain America", "Hulk", "Black Widow")
var alias by remember { mutableStateOf("") }

AutoComplete(
label = { Text("Name") },
options = names,
value = name,
onValueChange = { name = it },
)
AutoComplete(
value = alias,
options = aliases,
onValueChange = { alias= it },
label = { Text("Alias") }
)
}
}
}

@Composable
fun AutoComplete(
label: @Composable () -> Unit,
options: List,
value: String,
onValueChange: (String) -> Unit,
modifier: Modifier = Modifier,
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
isError: Boolean = false,
) {
var expanded by remember { mutableStateOf(false) }
var filteredOpts by remember { mutableStateOf(options) }

Column {
TextField(
label = label,
value = value,
onValueChange = {
onValueChange(it)
filteredOpts = options.filter { option ->
option
.lowercase()
.contains(it.lowercase())
}
expanded = true
},
isError = isError,
keyboardOptions = keyboardOptions,
modifier = modifier
)

if (expanded && filteredOpts.isNotEmpty()) {
Column(
modifier = Modifier
.fillMaxWidth(),
) {
filteredOpts.forEach { option ->
DropdownMenuItem(
text = { Text(text = option) },
onClick = {
onValueChange(option)
filteredOpts = emptyList()
expanded = false
}
)
}
}
}
}
}
Пока все хорошо. Однако когда пользователь начинает печатать. Предложения сдвигают второй автозаполнение дальше вниз, а не выполняют рендеринг поверх него. Как это исправить?
Изображение


Подробнее здесь: https://stackoverflow.com/questions/790 ... -of-the-ui
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»