diff --git a/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java b/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java index f9610a65f5..81eb84ab90 100644 --- a/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java +++ b/app/src/main/java/eu/faircode/email/BehaviorBottomMargin.java @@ -39,21 +39,29 @@ public class BehaviorBottomMargin extends CoordinatorLayout.Behavior { @Override public boolean layoutDependsOn(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { - return dependency instanceof Snackbar.SnackbarLayout; + return (dependency instanceof Snackbar.SnackbarLayout); + } + + @Override + public boolean onLayoutChild(@NonNull CoordinatorLayout parent, @NonNull View child, int layoutDirection) { + setMargin(child, 0); + return super.onLayoutChild(parent, child, layoutDirection); } @Override public boolean onDependentViewChanged(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { - CoordinatorLayout.LayoutParams lparam = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); - lparam.setMargins(0, 0, 0, dependency.getHeight()); - child.setLayoutParams(lparam); + setMargin(child, dependency.getHeight()); return true; } @Override public void onDependentViewRemoved(CoordinatorLayout parent, View child, View dependency) { + setMargin(child, 0); + } + + private static void setMargin(View child, int value) { CoordinatorLayout.LayoutParams lparam = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); - lparam.setMargins(0, 0, 0, 0); + lparam.setMargins(0, 0, 0, value); child.setLayoutParams(lparam); } } diff --git a/app/src/main/java/eu/faircode/email/BehaviorBottomPadding.java b/app/src/main/java/eu/faircode/email/BehaviorBottomPadding.java index 6c811fb0b1..5ea0a4aa0b 100644 --- a/app/src/main/java/eu/faircode/email/BehaviorBottomPadding.java +++ b/app/src/main/java/eu/faircode/email/BehaviorBottomPadding.java @@ -39,17 +39,27 @@ public class BehaviorBottomPadding extends CoordinatorLayout.Behavior { @Override public boolean layoutDependsOn(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { - return dependency instanceof Snackbar.SnackbarLayout; + return (dependency instanceof Snackbar.SnackbarLayout); + } + + @Override + public boolean onLayoutChild(@NonNull CoordinatorLayout parent, @NonNull View child, int layoutDirection) { + setPadding(child, 0); + return super.onLayoutChild(parent, child, layoutDirection); } @Override public boolean onDependentViewChanged(@NonNull CoordinatorLayout parent, @NonNull View child, @NonNull View dependency) { - child.setPadding(0, 0, 0, dependency.getHeight()); + setPadding(child, dependency.getHeight()); return true; } @Override public void onDependentViewRemoved(CoordinatorLayout parent, View child, View dependency) { - child.setPadding(0, 0, 0, 0); + setPadding(child, 0); + } + + private static void setPadding(View child, int value) { + child.setPadding(0, 0, 0, value); } }