diff options
Diffstat (limited to 'core/java/android/widget/Toolbar.java')
-rw-r--r-- | core/java/android/widget/Toolbar.java | 18 |
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(); |