diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c689942ada..2dfd5cc51a 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -300,6 +300,7 @@
3dp
12sp
14sp
+ 504dp
10dp
diff --git a/src/com/android/launcher3/views/Snackbar.java b/src/com/android/launcher3/views/Snackbar.java
index f945819c8d..e582114fc9 100644
--- a/src/com/android/launcher3/views/Snackbar.java
+++ b/src/com/android/launcher3/views/Snackbar.java
@@ -88,9 +88,14 @@ public class Snackbar extends AbstractFloatingView {
int maxMarginLeftRight = res.getDimensionPixelSize(R.dimen.snackbar_max_margin_left_right);
int minMarginLeftRight = res.getDimensionPixelSize(R.dimen.snackbar_min_margin_left_right);
int marginBottom = res.getDimensionPixelSize(R.dimen.snackbar_margin_bottom);
+ int absoluteMaxWidth = res.getDimensionPixelSize(R.dimen.snackbar_max_width);
Rect insets = activity.getDeviceProfile().getInsets();
- int maxWidth = dragLayer.getWidth() - minMarginLeftRight * 2 - insets.left - insets.right;
- int minWidth = dragLayer.getWidth() - maxMarginLeftRight * 2 - insets.left - insets.right;
+ int maxWidth = Math.min(
+ dragLayer.getWidth() - minMarginLeftRight * 2 - insets.left - insets.right,
+ absoluteMaxWidth);
+ int minWidth = Math.min(
+ dragLayer.getWidth() - maxMarginLeftRight * 2 - insets.left - insets.right,
+ absoluteMaxWidth);
params.width = minWidth;
params.setMargins(0, 0, 0, marginBottom + insets.bottom);