diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2012-06-25 15:49:11 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2012-07-12 17:39:12 -0700 |
commit | cf1ba0298c48ae56608ed556dc715eb69c54f9b9 (patch) | |
tree | 4f0b83de4bb8585506fed122a215757e87503754 /core/java/com/android/internal/widget/ActionBarContextView.java | |
parent | 92bd5f95ca078a795db7c2efd30e85d4260561de (diff) | |
download | frameworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.zip frameworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.tar.gz frameworks_base-cf1ba0298c48ae56608ed556dc715eb69c54f9b9.tar.bz2 |
Make ActionBar aware of layout direction
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)
Change-Id: Iea8a512311ee99548f39bbbe342f21eabaffbe09
Diffstat (limited to 'core/java/com/android/internal/widget/ActionBarContextView.java')
-rw-r--r-- | core/java/com/android/internal/widget/ActionBarContextView.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/core/java/com/android/internal/widget/ActionBarContextView.java b/core/java/com/android/internal/widget/ActionBarContextView.java index 16f08f5..8bc1081 100644 --- a/core/java/com/android/internal/widget/ActionBarContextView.java +++ b/core/java/com/android/internal/widget/ActionBarContextView.java @@ -454,15 +454,18 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { - int x = getPaddingLeft(); + final boolean isLayoutRtl = isLayoutRtl(); + int x = isLayoutRtl ? r - l - getPaddingRight() : getPaddingLeft(); final int y = getPaddingTop(); final int contentHeight = b - t - getPaddingTop() - getPaddingBottom(); if (mClose != null && mClose.getVisibility() != GONE) { MarginLayoutParams lp = (MarginLayoutParams) mClose.getLayoutParams(); - x += lp.leftMargin; - x += positionChild(mClose, x, y, contentHeight); - x += lp.rightMargin; + final int startMargin = (isLayoutRtl ? lp.rightMargin : lp.leftMargin); + final int endMargin = (isLayoutRtl ? lp.leftMargin : lp.rightMargin); + x = next(x, startMargin, isLayoutRtl); + x += positionChild(mClose, x, y, contentHeight, isLayoutRtl); + x = next(x, endMargin, isLayoutRtl); if (mAnimateInOnLayout) { mAnimationMode = ANIMATE_IN; @@ -473,17 +476,17 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi } if (mTitleLayout != null && mCustomView == null && mTitleLayout.getVisibility() != GONE) { - x += positionChild(mTitleLayout, x, y, contentHeight); + x += positionChild(mTitleLayout, x, y, contentHeight, isLayoutRtl); } if (mCustomView != null) { - x += positionChild(mCustomView, x, y, contentHeight); + x += positionChild(mCustomView, x, y, contentHeight, isLayoutRtl); } - - x = r - l - getPaddingRight(); + + x = isLayoutRtl ? getPaddingLeft() : r - l - getPaddingRight(); if (mMenuView != null) { - x -= positionChildInverse(mMenuView, x, y, contentHeight); + x += positionChild(mMenuView, x, y, contentHeight, !isLayoutRtl); } } |