Hide tabs fragments when keyboard is visible to gain some space
This commit is contained in:
parent
a9daf53d69
commit
83a823152e
2 changed files with 13 additions and 0 deletions
|
@ -30,6 +30,8 @@ import android.view.Gravity
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
|
import androidx.core.view.ViewCompat
|
||||||
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
import androidx.fragment.app.FragmentContainerView
|
import androidx.fragment.app.FragmentContainerView
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
@ -174,6 +176,16 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin
|
||||||
registerComponentCallbacks(componentCallbacks)
|
registerComponentCallbacks(componentCallbacks)
|
||||||
findNavController(R.id.nav_host_fragment).addOnDestinationChangedListener(this)
|
findNavController(R.id.nav_host_fragment).addOnDestinationChangedListener(this)
|
||||||
|
|
||||||
|
binding.rootCoordinatorLayout.viewTreeObserver.addOnGlobalLayoutListener {
|
||||||
|
val keyboardVisible = ViewCompat.getRootWindowInsets(binding.rootCoordinatorLayout)?.isVisible(WindowInsetsCompat.Type.ime()) == true
|
||||||
|
Log.d("[Tabs Fragment] Keyboard is ${if (keyboardVisible) "visible" else "invisible"}")
|
||||||
|
if (keyboardVisible) {
|
||||||
|
hideTabsFragment()
|
||||||
|
} else {
|
||||||
|
showTabsFragment()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (intent != null) handleIntentParams(intent)
|
if (intent != null) handleIntentParams(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
android:id="@+id/root_coordinator_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue