BottomNavigationView fehlt nach der Implementierung des WindowInsets-Listeners
Posted: 03 Jan 2025, 16:11
Ich versuche, den Fenstereinfügungs-Listener zu implementieren, um das Ein-/Ausblenden der Tastatur auf einem bestimmten Fragment zu überwachen. Es funktioniert gut auf dem Fragment, aber meine untere Navigation ist verschwunden, wenn ich zum vorherigen Fragment zurückkehre.
Hier ist mein Fragment-XML. Ich füge android:fitsSystemWindows="true" hinzu, weil es erforderlich war, dass der Insets-Listener ausgelöst wurde.
Und hier ist meine Listener-Implementierung:
Bild des Fragments, das Einfügungen implementiert, funktioniert normal.
[img]https:// i.sstatic.net/A2274mm8m.png[/img]
Hier ist der Startbildschirm, bevor ich zu dem Fragment navigiere, das Fenstereinsätze implementiert.

Und hier ist das Bild nach der Rückseite des Fragments, das Fenstereinsätze implementiert.

Hier ist mein Fragment-XML. Ich füge android:fitsSystemWindows="true" hinzu, weil es erforderlich war, dass der Insets-Listener ausgelöst wurde.
Code: Select all
...
Code: Select all
private fun observeKeyboardChange() {
binding?.clStreamCreatePost?.post {
val view = binding?.clStreamCreatePost ?: return@post
ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets ->
val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime())
val statusBarHeight = insets.getInsets(WindowInsetsCompat.Type.statusBars()).top
val imeHeight = insets.getInsets(WindowInsetsCompat.Type.ime()).bottom
Toast.makeText(requireContext(), "imeVisible=$imeVisible", Toast.LENGTH_SHORT).show()
// I want clear focus my textfield when keyboard is hidden
if (!imeVisible) v.clearFocus()
v.updatePadding(
top = 0,
bottom = imeHeight
)
insets
}
}
}
[img]https:// i.sstatic.net/A2274mm8m.png[/img]
Hier ist der Startbildschirm, bevor ich zu dem Fragment navigiere, das Fenstereinsätze implementiert.

Und hier ist das Bild nach der Rückseite des Fragments, das Fenstereinsätze implementiert.
