mobiledevpro / Android-Kotlin-MVVM-Template

AppTemplate | MVVM + Clean Architecture | Kotlin, Coroutines, LiveData, Koin, Databinding, Navigation components, Room, Crashlytics, Circle CI config, commons classes for UI.
https://bento.me/mobiledevpro
Apache License 2.0
556 stars 51 forks source link

[common-ui] Add a new param "edgeToEdge" (true/false) to ActivitySettings #48

Open dmitriy-chernysh opened 2 years ago

dmitriy-chernysh commented 2 years ago

If edgeToEdge == true set margins to 0

private fun applyWindowInsets(view: View) {
        ViewCompat.setOnApplyWindowInsetsListener(view) { _, windowInsets ->

            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
            // Apply the insets as a margin to the view. Here the system is setting
            // only the bottom, left, and right dimensions, but apply whichever insets are
            // appropriate to your layout. You can also update the view padding
            // if that's more appropriate.
            view.updateLayoutParams<ViewGroup.MarginLayoutParams> {
                leftMargin =0
                bottomMargin = 0
                rightMargin =0
                topMargin = 0
            }

            // Return CONSUMED if you don't want want the window insets to keep being
            // passed down to descendant views.
           WindowInsetsCompat.CONSUMED
        }
    }

Add this line to onCreate() if edge-to-edge == true

  WindowCompat.setDecorFitsSystemWindows(window, false)