Поиск, FocusRequester не инициализируетсяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Поиск, FocusRequester не инициализируется

Сообщение Anonymous »

Я пытаюсь добавить кнопку, которая открывает поиск и клавиатуру при нажатии. FirstState "src =" https://i.sstatic.net/vopuf.png "/>

Но я получаю ошибку
FocusRequester is not initialized. Here are some possible fixes:
1. Remember the FocusRequester: val focusRequester = remember { FocusRequester() }
2. Did you forget to add a Modifier.focusRequester() ?
3. Are you attempting to request focus during composition? Focus requests should be made in
response to some event. Eg Modifier.clickable { focusRequester.requestFocus() }
< /code>
Я пришел к выводу, что это связано с анимированнойвисностью, потому что без этого все работает. То есть, когда и кнопка, и поиск изначально видны, все работает. Для этого < /p>
my code: < /p>
topBar = {
TopAppBar(
actions = {
// val keyboardController = LocalSoftwareKeyboardController.current //val focusRequester = remember { FocusRequester() }
var visibleSearchBar by remember {
mutableStateOf(false)
}
var visiblecurrentSearch by remember {
mutableStateOf(true)
}
val state = remember { mutableStateOf(TextFieldValue("")) }
AnimatedVisibility(visible = visiblecurrentSearch) {
IconButton(onClick = {
visibleSearchBar = true
visiblecurrentSearch = false
//focusRequester.requestFocus()
//keyboardController?.show()
}) {
Icon(painter = painterResource(id = R.drawable.ic_baseline_search_24),
contentDescription = "search")
}
}
AnimatedVisibility(visible = visibleSearchBar) {
TextField(
value = state.value,
onValueChange = { value ->
state.value = value
},
enabled = true,
shape = RoundedCornerShape(25.dp),
modifier = Modifier
//.focusRequester(focusRequester)
.fillMaxWidth()
.padding(end = 10.dp)
.scale(scaleX = 1F, scaleY = 0.9F),
textStyle = TextStyle(color = Color.Black),
placeholder = {
Text(
text = "Search",
fontSize = 14.sp,
)
},
keyboardActions = KeyboardActions(
onDone = {
//movie = list
}
),
leadingIcon = {
Icon(
Icons.Default.Search,
contentDescription = "",
modifier = Modifier
.size(20.dp)
)
},
trailingIcon = {
IconButton(
onClick = {
state.value =
TextFieldValue("") =
visibleSearchBar = false
visiblecurrentSearch = true
}
) {
Icon(
Icons.Default.Close,
contentDescription = "",
modifier = Modifier
.size(20.dp)
)
}

},
singleLine = true,
colors = TextFieldDefaults.textFieldColors(
textColor = Color.Black,
cursorColor = Color.Black,
leadingIconColor = Color.Black,
trailingIconColor = Color.Black,
focusedIndicatorColor = Color.Transparent,
unfocusedIndicatorColor = Color.Transparent,
disabledIndicatorColor = Color.Black
)
)
}

},
title = {

},
navigationIcon = {
IconButton(onClick = {}) {
Icon(painter = painterResource(id = R.drawable.ic_baseline_menu_24),
contentDescription = "menu")
}
},
backgroundColor = Color.White,
contentColor = Color.Black,
elevation = 3.dp
)
}


Подробнее здесь: https://stackoverflow.com/questions/741 ... nitialized
Ответить

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

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

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

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

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