summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values-w720dp/dimensions.xml19
-rw-r--r--res/values/dimensions.xml4
-rw-r--r--src/com/android/browser/TabBar.java25
-rw-r--r--src/com/android/browser/TabScrollView.java12
4 files changed, 53 insertions, 7 deletions
diff --git a/res/values-w720dp/dimensions.xml b/res/values-w720dp/dimensions.xml
new file mode 100644
index 0000000..dcb5927
--- /dev/null
+++ b/res/values-w720dp/dimensions.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2011 The Android Open Source Project Licensed under the
+ Apache License, Version 2.0 (the "License"); you may not use this file
+ except in compliance with the License. You may obtain a copy of the
+ License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+ applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ CONDITIONS OF ANY KIND, either express or implied. See the License for
+ the specific language governing permissions and limitations under the
+ License.
+-->
+<resources
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- The width of a selected tab -->
+ <dimen name="tab_width_selected">280dp</dimen>
+ <!-- The width of an unselected tab -->
+ <dimen name="tab_width_unselected">240dp</dimen>
+</resources>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index 28b9e8b..450c580 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -13,9 +13,9 @@
<resources
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- The width of a selected tab -->
- <dimen name="tab_width_selected">280dp</dimen>
+ <dimen name="tab_width_selected">200dp</dimen>
<!-- The width of an unselected tab -->
- <dimen name="tab_width_unselected">240dp</dimen>
+ <dimen name="tab_width_unselected">160dp</dimen>
<dimen name="tab_height">44dp</dimen>
<dimen name="tab_overlap">8dp</dimen>
<dimen name="tab_addoverlap">14dp</dimen>
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) {