diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/browser/TabBar.java | 25 | ||||
-rw-r--r-- | src/com/android/browser/TabScrollView.java | 12 |
2 files changed, 32 insertions, 5 deletions
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java index a574d26..6c3949a 100644 --- a/src/com/android/browser/TabBar.java +++ b/src/com/android/browser/TabBar.java @@ -24,6 +24,7 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.content.Context; +import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapShader; @@ -65,8 +66,8 @@ public class TabBar extends LinearLayout private TabControl mTabControl; private XLargeUi mUi; - private final int mTabWidthSelected; - private final int mTabWidthUnselected; + private int mTabWidthSelected; + private int mTabWidthUnselected; private TabScrollView mTabs; @@ -138,6 +139,16 @@ public class TabBar extends LinearLayout mFocusPaint.setColor(res.getColor(R.color.tabFocusHighlight)); } + @Override + public void onConfigurationChanged(Configuration config) { + super.onConfigurationChanged(config); + Resources res = mActivity.getResources(); + mTabWidthSelected = (int) res.getDimension(R.dimen.tab_width_selected); + mTabWidthUnselected = (int) res.getDimension(R.dimen.tab_width_unselected); + // force update of tab bar + mTabs.updateLayout(); + } + void setUseQuickControls(boolean useQuickControls) { mUseQuickControls = useQuickControls; mNewTab.setVisibility(mUseQuickControls ? View.GONE @@ -404,12 +415,16 @@ public class TabBar extends LinearLayout R.style.TabTitleSelected : R.style.TabTitleUnselected); setHorizontalFadingEdgeEnabled(!mSelected); super.setActivated(selected); + updateLayoutParams(); + setFocusable(!selected); + postInvalidate(); + } + + public void updateLayoutParams() { LayoutParams lp = (LinearLayout.LayoutParams) getLayoutParams(); - lp.width = selected ? mTabWidthSelected : mTabWidthUnselected; + lp.width = mSelected ? mTabWidthSelected : mTabWidthUnselected; lp.height = LayoutParams.MATCH_PARENT; setLayoutParams(lp); - setFocusable(!selected); - postInvalidate(); } void setDisplayTitle(String title) { diff --git a/src/com/android/browser/TabScrollView.java b/src/com/android/browser/TabScrollView.java index d0648b7..f43d6d6 100644 --- a/src/com/android/browser/TabScrollView.java +++ b/src/com/android/browser/TabScrollView.java @@ -16,6 +16,8 @@ package com.android.browser; +import com.android.browser.TabBar.TabView; + import android.animation.ObjectAnimator; import android.content.Context; import android.util.AttributeSet; @@ -85,6 +87,16 @@ public class TabScrollView extends HorizontalScrollView { ensureChildVisible(getSelectedTab()); } + // in case of a configuration change, adjust tab width + protected void updateLayout() { + final int count = mContentView.getChildCount(); + for (int i = 0; i < count; i++) { + final TabView tv = (TabView) mContentView.getChildAt(i); + tv.updateLayoutParams(); + } + ensureChildVisible(getSelectedTab()); + } + void setSelectedTab(int position) { View v = getSelectedTab(); if (v != null) { |