summaryrefslogtreecommitdiffstats
path: root/core/java/com/android/internal/widget/ActionBarContainer.java
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2011-04-25 15:23:41 -0700
committerAdam Powell <adamp@google.com>2011-04-25 17:42:45 -0700
commitdae7824c4b78d02159c6ad0896f246942d7b3d8c (patch)
treec83aa633bbf5e2713bde0b35a04f6f585839742a /core/java/com/android/internal/widget/ActionBarContainer.java
parenta13802d8805c2af2fae4d64e3dee99abd73ecfa9 (diff)
downloadframeworks_base-dae7824c4b78d02159c6ad0896f246942d7b3d8c.zip
frameworks_base-dae7824c4b78d02159c6ad0896f246942d7b3d8c.tar.gz
frameworks_base-dae7824c4b78d02159c6ad0896f246942d7b3d8c.tar.bz2
Action bar work for phones
Drop tabs to a second row at < w480dp Make 9-patches for the cab's "done" button thinner Add a "disable home" display option to the action bar to turn off focus and touch feedback when tapping home would do nothing Change-Id: Ib2eedf311655f02055357321e2e9ad5b9037fed1
Diffstat (limited to 'core/java/com/android/internal/widget/ActionBarContainer.java')
-rw-r--r--core/java/com/android/internal/widget/ActionBarContainer.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/core/java/com/android/internal/widget/ActionBarContainer.java b/core/java/com/android/internal/widget/ActionBarContainer.java
index c9b0ec9..3deb036 100644
--- a/core/java/com/android/internal/widget/ActionBarContainer.java
+++ b/core/java/com/android/internal/widget/ActionBarContainer.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.MotionEvent;
+import android.view.View;
import android.widget.FrameLayout;
/**
@@ -29,6 +30,7 @@ import android.widget.FrameLayout;
*/
public class ActionBarContainer extends FrameLayout {
private boolean mIsTransitioning;
+ private View mTabContainer;
public ActionBarContainer(Context context) {
this(context, null);
@@ -65,6 +67,44 @@ public class ActionBarContainer extends FrameLayout {
@Override
public boolean onTouchEvent(MotionEvent ev) {
super.onTouchEvent(ev);
+
+ // An action bar always eats touch events.
return true;
}
+
+ public void setTabContainer(View tabView) {
+ if (mTabContainer != null) {
+ removeView(mTabContainer);
+ }
+ mTabContainer = tabView;
+ addView(tabView);
+ }
+
+ public View getTabContainer() {
+ return mTabContainer;
+ }
+
+ @Override
+ public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ if (mTabContainer != null && mTabContainer.getVisibility() != GONE) {
+ final int mode = MeasureSpec.getMode(heightMeasureSpec);
+ if (mode == MeasureSpec.AT_MOST) {
+ final int measuredHeight = getMeasuredHeight();
+ final int maxHeight = MeasureSpec.getSize(heightMeasureSpec);
+ setMeasuredDimension(getMeasuredWidth(),
+ Math.min(measuredHeight + mTabContainer.getMeasuredHeight(), maxHeight));
+ }
+ }
+ }
+
+ @Override
+ public void onLayout(boolean changed, int l, int t, int r, int b) {
+ super.onLayout(changed, l, t, r, b);
+ if (mTabContainer != null && mTabContainer.getVisibility() != GONE) {
+ final int containerHeight = getMeasuredHeight();
+ mTabContainer.layout(l, containerHeight - mTabContainer.getMeasuredHeight(),
+ r, containerHeight);
+ }
+ }
}