summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/Toolbar.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/Toolbar.java')
-rw-r--r--core/java/android/widget/Toolbar.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/widget/Toolbar.java b/core/java/android/widget/Toolbar.java
index 712e6d0..c0d8764 100644
--- a/core/java/android/widget/Toolbar.java
+++ b/core/java/android/widget/Toolbar.java
@@ -1006,6 +1006,24 @@ public class Toolbar extends ViewGroup {
super.onRestoreInstanceState(ss.getSuperState());
}
+ /**
+ * @hide
+ */
+ @Override
+ protected void onSetLayoutParams(View child, ViewGroup.LayoutParams lp) {
+ /*
+ * Apps may set ActionBar.LayoutParams on their action bar custom views when
+ * a Toolbar is actually acting in the role of the action bar. Perform a quick
+ * switch with Toolbar.LayoutParams whenever this happens. This does leave open
+ * one potential gotcha: if an app retains the ActionBar.LayoutParams reference
+ * and attempts to keep making changes to it before layout those changes won't
+ * be reflected in the final results.
+ */
+ if (!checkLayoutParams(lp)) {
+ child.setLayoutParams(generateLayoutParams(lp));
+ }
+ }
+
private void measureChildConstrained(View child, int parentWidthSpec, int widthUsed,
int parentHeightSpec, int heightUsed, int heightConstraint) {
final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();