Ich versuche, Folgendes zusammenzuarbeiten:
- App ist Kante an Kante
- ist „adjustResize“
Code: Select all
windowSoftInputMode
- mit meinem Inhalt in einem androidx.compose.material3.Scaffold
Code: Select all
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
setContent {
MyComposeApplicationTheme {
Scaffold(
topBar = {
TopAppBar(
title = { Text(text = stringResource(id = R.string.app_name)) }
)
},
) { scaffoldPadding ->
Box(
modifier = Modifier
.fillMaxSize()
.padding(scaffoldPadding),
contentAlignment = Alignment.BottomCenter
) {
OutlinedTextField(
value = "",
onValueChange = {},
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp)
)
Divider()
}
}
}
}
}
}

Aber wenn ich die Tastatur öffne, ändert sich die Größe des Bildschirms nicht korrekt, obwohl das Attribut android:windowSoftInputMode="adjustResize" im AndroidManifest festgelegt ist für die Aktivität:

Wenn ich den Modifier.imePadding( verwende ), die Situation verbessert sich, aber jetzt habe ich neben der Polsterung für den IME auch die innere Polsterung des Gerüsts, die die Polsterung für die Navigationsleiste berücksichtigt, auch wenn die Tastatur geöffnet ist:

Was ist der richtige Weg, um die untere Polsterung des Gerüsts beizubehalten, ohne die Polsterung der Navigationsleiste hinzuzufügen? wenn die IME-Auffüllung hinzugefügt wird?
BEARBEITEN
Ich vermute, dass dies ein Fehler im Scaffold ist, also habe ich ein Problem auf dem Tracker erstellt : https://issuetracker.google.com/issues/249727298