Skip to content

Commit

Permalink
Apply insets in example app
Browse files Browse the repository at this point in the history
  • Loading branch information
vitalii-vanziak-cko committed Oct 11, 2024
1 parent efb191a commit 3b05a0d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.processout.example.ui.screen

import android.graphics.Color
import android.os.Bundle
import android.view.View
import androidx.activity.SystemBarStyle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updateLayoutParams
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupWithNavController
Expand All @@ -15,15 +17,14 @@ import com.processout.example.R

class MainActivity : AppCompatActivity() {

private lateinit var topSpacer: View

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
statusBarStyle = SystemBarStyle.dark(
ContextCompat.getColor(this, com.processout.sdk.R.color.po_action_primary_default)
)
)
adjustInsets()
enableEdgeToEdge(statusBarStyle = SystemBarStyle.dark(Color.TRANSPARENT))
setContentView(R.layout.activity_main)
topSpacer = findViewById(R.id.top_spacer)
adjustInsets()
val navHostFragment = supportFragmentManager.findFragmentById(R.id.navigation_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
val appBarConfiguration = AppBarConfiguration(navController.graph)
Expand All @@ -35,16 +36,18 @@ class MainActivity : AppCompatActivity() {
ViewCompat.setOnApplyWindowInsetsListener(
findViewById(android.R.id.content)
) { content, insets ->
val padding = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
or WindowInsetsCompat.Type.displayCutout()
or WindowInsetsCompat.Type.ime()
)
topSpacer.updateLayoutParams {
height = insets.getInsets(
WindowInsetsCompat.Type.statusBars()
or WindowInsetsCompat.Type.displayCutout()
).top
}
content.setPaddingRelative(
padding.left,
padding.top,
padding.right,
padding.bottom
0, 0, 0,
insets.getInsets(
WindowInsetsCompat.Type.navigationBars()
or WindowInsetsCompat.Type.ime()
).bottom
)
insets
}
Expand Down
11 changes: 10 additions & 1 deletion example/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,22 @@
tools:context=".ui.screen.MainActivity"
tools:viewBindingIgnore="true">

<View
android:id="@+id/top_spacer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/po_action_primary_default"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@id/top_spacer" />

<androidx.fragment.app.FragmentContainerView
android:id="@+id/navigation_host_fragment"
Expand Down

0 comments on commit 3b05a0d

Please sign in to comment.