Jetpack Compose - клавиатура скрывает текстовое поле в первый раз

Я создал простой пример с шестью текстовыми полями внутри LazyColumn, когда вы щелкаете последнее текстовое поле, клавиатура скрывает его, если вы скрываете клавиатуру и снова щелкаете последнее текстовое поле, все работает нормально.

В AndroidManifest я использую "adjustPan"

              android:windowSoftInputMode="adjustPan"

Это захват, когда вы нажимаете последнее текстовое поле в первый раз, скрывает последнее текстовое поле

Это захват, когда вы нажимаете последнее текстовое поле второй раз, работает правильно

Это код

      class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            TestComposeTheme {
                val numbers = listOf(1,2,3,4,5,6)
                LazyColumn() {
                    items(numbers) { index->
                        TextField(index = index)
                    }
                }
            }
        }
    }
}
@Composable
fun TextField(index: Int){
    var text by remember { mutableStateOf("Hello$index") }
    TextField(
        modifier = Modifier.padding(25.dp),
        value = text,
        onValueChange = { text = it },
        label = { Text("TextField$index") }
    )
}

Кто-нибудь знает, есть ли способ, которым в первый раз нажимается последнее TextField, это не позволит клавиатуре скрыть его

Спасибо

РЕДАКТИРОВАТЬ: существует известная проблема:192043120

2 ответа

поместите это в свое приложение AndroidManifest.xml внутри тега активности

      <activity
    ...
    android:windowSoftInputMode="adjustResize|stateVisible">

Это уже известная проблема. https://issuetracker.google.com/issues/192043120

Один из способов преодолеть это — использовать столбец с вертикальным прокруткой.

          Column(Modifier.verticalScroll(rememberScrollState(), reverseScrolling = true){
   // Content
}
Другие вопросы по тегам