summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Powell <adamp@google.com> 2012-03-06 17:43:48 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2012-03-06 17:43:48 -0800
commit494e155a5a7893eaec74876e674c91841781d20d (patch)
tree06c555fc181f135d2ae72d116ec57f4d8cf57bb3
parentd28111f4f806196c63fff8b4a33444f9333252db (diff)
parentf203e0a44ef7578c080d63424820fb5a94a4e92f (diff)
Merge "Fix some action bar menu layout bugs around config changes"
-rw-r--r--core/java/com/android/internal/view/menu/ActionMenuPresenter.java6
-rw-r--r--core/java/com/android/internal/widget/ActionBarView.java18
2 files changed, 21 insertions, 3 deletions
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 530809b869c3..dca45a9a9b64 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -116,9 +116,9 @@ public class ActionMenuPresenter extends BaseMenuPresenter
if (!mMaxItemsSet) {
mMaxItems = mContext.getResources().getInteger(
com.android.internal.R.integer.max_action_buttons);
- if (mMenu != null) {
- mMenu.onItemsChanged(true);
- }
+ }
+ if (mMenu != null) {
+ mMenu.onItemsChanged(true);
}
}
diff --git a/core/java/com/android/internal/widget/ActionBarView.java b/core/java/com/android/internal/widget/ActionBarView.java
index 2f325bf74e52..8c054590ee95 100644
--- a/core/java/com/android/internal/widget/ActionBarView.java
+++ b/core/java/com/android/internal/widget/ActionBarView.java
@@ -324,13 +324,31 @@ public class ActionBarView extends AbsActionBarView {
if (mSplitView != null) {
mSplitView.addView(mMenuView);
}
+ mMenuView.getLayoutParams().width = LayoutParams.MATCH_PARENT;
} else {
addView(mMenuView);
+ mMenuView.getLayoutParams().width = LayoutParams.WRAP_CONTENT;
}
+ mMenuView.requestLayout();
}
if (mSplitView != null) {
mSplitView.setVisibility(splitActionBar ? VISIBLE : GONE);
}
+
+ if (mActionMenuPresenter != null) {
+ if (!splitActionBar) {
+ mActionMenuPresenter.setExpandedActionViewsExclusive(
+ getResources().getBoolean(
+ com.android.internal.R.bool.action_bar_expanded_action_views_exclusive));
+ } else {
+ mActionMenuPresenter.setExpandedActionViewsExclusive(false);
+ // Allow full screen width in split mode.
+ mActionMenuPresenter.setWidthLimit(
+ getContext().getResources().getDisplayMetrics().widthPixels, true);
+ // No limit to the item count; use whatever will fit.
+ mActionMenuPresenter.setItemLimit(Integer.MAX_VALUE);
+ }
+ }
super.setSplitActionBar(splitActionBar);
}
}