diff --git a/introduction/src/main/java/com/rubengees/introduction/IntroductionActivity.java b/introduction/src/main/java/com/rubengees/introduction/IntroductionActivity.java index b7ddec4..7d10961 100644 --- a/introduction/src/main/java/com/rubengees/introduction/IntroductionActivity.java +++ b/introduction/src/main/java/com/rubengees/introduction/IntroductionActivity.java @@ -52,7 +52,9 @@ public class IntroductionActivity extends AppCompatActivity { private ArrayList slides; private Style style; + private ViewGroup root; private ViewPager pager; + private ViewGroup bottomBarContainer; private AppCompatImageButton previous; private AppCompatImageButton next; private FrameLayout indicatorContainer; @@ -65,8 +67,8 @@ public class IntroductionActivity extends AppCompatActivity { private boolean showPreviousButton; private boolean showIndicator; - private String skipText; private boolean allowBackPress; + private String skipText; private int orientation; @@ -96,7 +98,19 @@ protected void onCreate(Bundle savedInstanceState) { select(previousPagerPosition); } - //Workaround for fitsSystemWindows in a ViewPager + // Workarounds for fitsSystemWindows in a ViewPager. + ViewCompat.setOnApplyWindowInsetsListener(root, (v, insets) -> { + WindowInsetsCompat newInsets = ViewCompat.onApplyWindowInsets(root, insets); + + if (newInsets.isConsumed()) { + return newInsets; + } + + ViewCompat.dispatchApplyWindowInsets(bottomBarContainer, newInsets); + + return newInsets.isConsumed() ? newInsets.consumeSystemWindowInsets() : newInsets; + }); + ViewCompat.setOnApplyWindowInsetsListener(pager, (view, insets) -> { WindowInsetsCompat newInsets = ViewCompat.onApplyWindowInsets(view, insets); @@ -176,9 +190,10 @@ private void applyStyle() { } private void findViews() { - ViewGroup root = findViewById(R.id.introduction_activity_root); + root = findViewById(R.id.introduction_activity_root); pager = findViewById(R.id.introduction_activity_pager); indicatorContainer = findViewById(R.id.introduction_activity_container_indicator); + bottomBarContainer = findViewById(R.id.introduction_activity_bottom_bar_container); skip = findViewById(R.id.introduction_activity_skip); if (OrientationUtils.isRTL(this)) { diff --git a/introduction/src/main/res/layout/introduction_activity.xml b/introduction/src/main/res/layout/introduction_activity.xml index c8a4b56..6bf6b04 100644 --- a/introduction/src/main/res/layout/introduction_activity.xml +++ b/introduction/src/main/res/layout/introduction_activity.xml @@ -12,6 +12,7 @@ android:layout_height="wrap_content" />