Page 1 of 1

BottomNavigationView fehlt nach der Implementierung des WindowInsets-Listeners

Posted: 03 Jan 2025, 16:11
by Guest
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.

Code: Select all

...
Und hier ist meine Listener-Implementierung:

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
}
}
}
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.
Image

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