BottomNavigationView fehlt nach der Implementierung des WindowInsets-ListenersAndroid

Forum für diejenigen, die für Android programmieren
Guest
 BottomNavigationView fehlt nach der Implementierung des WindowInsets-Listeners

Post 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 weg.
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 untere Navigationsbildschirm, bevor die Tastatur sichtbar ist.
Image

Und hier ist das Bild, nachdem die Tastatur sichtbar ist.
Image
Eigentlich, wenn ich das Verhalten beobachte. Das Problem wurde dadurch ausgelöst, dass ich von einer Symbolleiste aus zurückgekehrt bin, als die Tastatur angezeigt wurde, wodurch der Insets-Listener nie aufgerufen wurde.
Wenn ich von der Rückseite aus gedrückt habe, um die Tastatur zuerst zu schließen und dann zurück, wird der Insets-Listener ausgelöst.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post