diff options
author | Adam Powell <adamp@google.com> | 2012-04-09 15:54:01 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2012-04-09 16:37:52 -0700 |
commit | a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b (patch) | |
tree | a065d566ff776580b546fee06b7dbc5bf1f1718e /core/java/com | |
parent | cbcb24cdb812c6f49a17c2c611c4138a7a0a964e (diff) | |
download | frameworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.zip frameworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.tar.gz frameworks_base-a7dec6d9734bdc3a9e39ffd357002e25c6fdc99b.tar.bz2 |
Restrictions for action buttons with text
Restrict action buttons with text to 2 lines max. Action buttons with
text will always consume at least 2 cells in split mode because they
look silly in 1.
Note that this affects text provided by menu items, not TextViews
embedded within app-provided action views.
Fixes bug 6236467
Change-Id: I7bcbf80f448b13a895ddc3bc6a7a555c0f0bac7c
Diffstat (limited to 'core/java/com')
-rw-r--r-- | core/java/com/android/internal/view/menu/ActionMenuView.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuView.java b/core/java/com/android/internal/view/menu/ActionMenuView.java index e00fe9f..af67d55 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuView.java @@ -340,8 +340,12 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final int childHeightMode = MeasureSpec.getMode(parentHeightMeasureSpec); final int childHeightSpec = MeasureSpec.makeMeasureSpec(childHeightSize, childHeightMode); + final ActionMenuItemView itemView = child instanceof ActionMenuItemView ? + (ActionMenuItemView) child : null; + final boolean hasText = itemView != null && itemView.hasText(); + int cellsUsed = 0; - if (cellsRemaining > 0) { + if (cellsRemaining > 0 && (!hasText || cellsRemaining >= 2)) { final int childWidthSpec = MeasureSpec.makeMeasureSpec( cellSize * cellsRemaining, MeasureSpec.AT_MOST); child.measure(childWidthSpec, childHeightSpec); @@ -349,11 +353,10 @@ public class ActionMenuView extends LinearLayout implements MenuBuilder.ItemInvo final int measuredWidth = child.getMeasuredWidth(); cellsUsed = measuredWidth / cellSize; if (measuredWidth % cellSize != 0) cellsUsed++; + if (hasText && cellsUsed < 2) cellsUsed = 2; } - final ActionMenuItemView itemView = child instanceof ActionMenuItemView ? - (ActionMenuItemView) child : null; - final boolean expandable = !lp.isOverflowButton && itemView != null && itemView.hasText(); + final boolean expandable = !lp.isOverflowButton && hasText; lp.expandable = expandable; lp.cellsUsed = cellsUsed; |