diff --git a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java index 4a92e456..5f08838d 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/activity/MainActivity.java @@ -147,6 +147,8 @@ public class MainActivity extends BaseActivity { private final BottomSheetBehavior.BottomSheetCallback bottomSheetCallback = new BottomSheetBehavior.BottomSheetCallback() { + int navigationHeight; + @Override public void onStateChanged(@NonNull View view, int state) { PlayerBottomSheetFragment playerBottomSheetFragment = (PlayerBottomSheetFragment) getSupportFragmentManager().findFragmentByTag("PlayerBottomSheet"); @@ -169,15 +171,32 @@ public class MainActivity extends BaseActivity { @Override public void onSlide(@NonNull View view, float slideOffset) { - PlayerBottomSheetFragment playerBottomSheetFragment = (PlayerBottomSheetFragment) getSupportFragmentManager().findFragmentByTag("PlayerBottomSheet"); - if (playerBottomSheetFragment != null) { - float condensedSlideOffset = Math.max(0.0f, Math.min(0.2f, slideOffset - 0.2f)) / 0.2f; - playerBottomSheetFragment.getPlayerHeader().setAlpha(1 - condensedSlideOffset); - playerBottomSheetFragment.getPlayerHeader().setVisibility(condensedSlideOffset > 0.99 ? View.GONE : View.VISIBLE); - } + animateBottomSheet(slideOffset); + animateBottomNavigation(slideOffset, navigationHeight); } }; + private void animateBottomSheet(float slideOffset) { + PlayerBottomSheetFragment playerBottomSheetFragment = (PlayerBottomSheetFragment) getSupportFragmentManager().findFragmentByTag("PlayerBottomSheet"); + if (playerBottomSheetFragment != null) { + float condensedSlideOffset = Math.max(0.0f, Math.min(0.2f, slideOffset - 0.2f)) / 0.2f; + playerBottomSheetFragment.getPlayerHeader().setAlpha(1 - condensedSlideOffset); + playerBottomSheetFragment.getPlayerHeader().setVisibility(condensedSlideOffset > 0.99 ? View.GONE : View.VISIBLE); + } + } + + private void animateBottomNavigation(float slideOffset, int navigationHeight) { + if (slideOffset < 0) return; + + if (navigationHeight == 0) { + navigationHeight = bind.bottomNavigation.getHeight(); + } + + float slideY = navigationHeight - navigationHeight * (1 - slideOffset); + + bind.bottomNavigation.setTranslationY(slideY); + } + private void initNavigation() { bottomNavigationView = findViewById(R.id.bottom_navigation); navHostFragment = (NavHostFragment) fragmentManager.findFragmentById(R.id.nav_host_fragment); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9b286c0a..1f4f6af0 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -24,19 +24,20 @@ android:layout_width="match_parent" android:layout_height="match_parent" app:behavior_hideable="true" - app:behavior_peekHeight="@dimen/bottom_sheet_peek_height" + app:behavior_peekHeight="@dimen/bottom_sheet_behavior_peek_height" app:layout_behavior="@string/bottom_sheet_behavior" /> - + - + 296dp 24dp + 136dp 56dp - 128dp + 164dp 2dp 2dp 12dp