Bom dia a todos
Eu tentei inserir o OutlinedTextField
igual ao da aula e apareceu essa mensagem para mim:
This material API is experimental and is likely to change or to be removed in the future.
Eu estou usando a versão material 3 do compose:
implementation 'androidx.compose.material3:material3'
E para dar certo no meu código tive que colocar a anotação @OptIn(ExperimentalMaterial3Api::class)
, ficando assim:
//deixei só os imports relacionados à questão
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.ui.text.input.TextFieldValue
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun MenuPedidosScreen(sessoes: Map<String,List<Produto>>) {
Column {
var text by remember{
mutableStateOf("")
}
OutlinedTextField(value = text, onValueChange = { novoValor ->
text = novoValor
}, label = { Text(text = "Busca")})
//omiti o resto do código
Eu queria saber porque isso aconteceu. Se essa essa função é experimental, qual é a oficial do material 3? Ou pode ser alguma configuração que eu fiz?
Ps: eu olhei na documentação do material 3 com jetpack e não encontrei nada diferente do que eu fiz para ter sido necessário eu colocar essa anotação
Atualização: percebi que nesta versão existem 2 tipos de OutlinedTextField, um que recebe String em value e outro que recebe TextFieldValue. E não sei como definir quando tem que ser um deles
public fun OutlinedTextField(value: TextFieldValue, onValueChange: (TextFieldValue) → Unit, modifier: Modifier = ..., enabled: Boolean = ..., readOnly: Boolean = ..., textStyle: TextStyle = ..., label: (() → Unit)? = ..., placeholder: (() → Unit)? = ..., leadingIcon: (() → Unit)? = ..., trailingIcon: (() → Unit)? = ..., supportingText: (() → Unit)? = ..., isError: Boolean = ..., visualTransformation: VisualTransformation = ..., keyboardOptions: KeyboardOptions = ..., keyboardActions: KeyboardActions = ..., singleLine: Boolean = ..., maxLines: Int = ..., interactionSource: MutableInteractionSource = ..., shape: Shape = ..., colors: TextFieldColors = ...): Unit defined in androidx.compose.material3
public fun OutlinedTextField(value: String, onValueChange: (String) → Unit, modifier: Modifier = ..., enabled: Boolean = ..., readOnly: Boolean = ..., textStyle: TextStyle = ..., label: (() → Unit)? = ..., placeholder: (() → Unit)? = ..., leadingIcon: (() → Unit)? = ..., trailingIcon: (() → Unit)? = ..., supportingText: (() → Unit)? = ..., isError: Boolean = ..., visualTransformation: VisualTransformation = ..., keyboardOptions: KeyboardOptions = ..., keyboardActions: KeyboardActions = ..., singleLine: Boolean = ..., maxLines: Int = ..., interactionSource: MutableInteractionSource = ..., shape: Shape = ..., colors: TextFieldColors = ...): Unit defined in androidx.compose.material3