Compose: So erhalten Sie Ime-Padding und Scaffold-Padding mit Edge-to-Edge und windowSoftInputMode ist adjustResizeAndroid

Forum für diejenigen, die für Android programmieren
Guest
 Compose: So erhalten Sie Ime-Padding und Scaffold-Padding mit Edge-to-Edge und windowSoftInputMode ist adjustResize

Post by Guest »

Die Auffüllung androidx.compose.material3.Scaffold fügt fälschlicherweise die Auffüllung der Navigationsleiste hinzu, auch wenn die Softtastatur geöffnet ist. Die IME-Auffüllung wird hinzugefügt, was zu einer doppelten Menge an Auffüllung der Navigationsleiste führt (siehe Abbildung unten, die Trennlinie). sollte die Oberseite der Soft-Tastatur berühren).
Ich versuche, Folgendes zusammenzuarbeiten:
  • App ist Kante an Kante
  • Code: Select all

    windowSoftInputMode
    ist „adjustResize“
  • mit meinem Inhalt in einem androidx.compose.material3.Scaffold
Dies ist der Code der MainActivity:

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()
}
}
}
}
}
}
Und so sieht es aus:
Image
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:
Image

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:
Image

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post