[go: nahoru, domu]

Fix clipped elevation in DropdownMenu

Fixes: 158803144
Test: MenuTest
Change-Id: I0af10d25ebe9e3ff19a001a514ce9ca3d7239419
diff --git a/ui/ui-material/src/main/java/androidx/ui/material/Menu.kt b/ui/ui-material/src/main/java/androidx/ui/material/Menu.kt
index d6132e8..4c19528 100644
--- a/ui/ui-material/src/main/java/androidx/ui/material/Menu.kt
+++ b/ui/ui-material/src/main/java/androidx/ui/material/Menu.kt
@@ -138,7 +138,7 @@
                     Card(
                         modifier = drawLayer
                             // Padding to account for the elevation, otherwise it is clipped.
-                            .padding(MenuElevation),
+                            .padding(MenuElevationInset),
                         elevation = MenuElevation
                     ) {
                         @OptIn(ExperimentalLayout::class)
@@ -200,18 +200,19 @@
 }
 
 // Size constants.
-internal val MenuElevation = 8.dp
-internal val DropdownMenuHorizontalPadding = 16.dp
+private val MenuElevation = 8.dp
+internal val MenuElevationInset = 16.dp
+private val DropdownMenuHorizontalPadding = 16.dp
 internal val DropdownMenuVerticalPadding = 8.dp
-internal val DropdownMenuItemDefaultMinWidth = 112.dp
-internal val DropdownMenuItemDefaultMaxWidth = 280.dp
-internal val DropdownMenuItemDefaultMinHeight = 48.dp
+private val DropdownMenuItemDefaultMinWidth = 112.dp
+private val DropdownMenuItemDefaultMaxWidth = 280.dp
+private val DropdownMenuItemDefaultMinHeight = 48.dp
 
 // Menu open/close animation.
 private val Scale = FloatPropKey()
 private val Alpha = FloatPropKey()
-internal val InTransitionDuration = 120
-internal val OutTransitionDuration = 75
+internal const val InTransitionDuration = 120
+internal const val OutTransitionDuration = 75
 
 private val DropdownMenuOpenCloseTransition = transitionDefinition {
     state(false) {
@@ -263,7 +264,7 @@
     menuBounds: PxBounds,
     density: Density
 ): TransformOrigin {
-    val inset = with(density) { MenuElevation.toPx() }
+    val inset = with(density) { MenuElevationInset.toPx() }
     val realMenuBounds = PxBounds(
         menuBounds.left + inset,
         menuBounds.top + inset,
@@ -313,7 +314,7 @@
         popupSize: IntSize
     ): IntOffset {
         // The padding inset that accommodates elevation, needs to be taken into account.
-        val inset = with(density) { MenuElevation.toIntPx() }
+        val inset = with(density) { MenuElevationInset.toIntPx() }
         val realPopupWidth = popupSize.width - inset * 2
         val realPopupHeight = popupSize.height - inset * 2
         val contentOffsetX = with(density) { contentOffset.x.toIntPx() }