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