diff options
author | Adam Powell <adamp@google.com> | 2011-04-25 15:23:41 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2011-04-25 17:42:45 -0700 |
commit | dae7824c4b78d02159c6ad0896f246942d7b3d8c (patch) | |
tree | c83aa633bbf5e2713bde0b35a04f6f585839742a /core/java/com/android/internal/widget/ActionBarContainer.java | |
parent | a13802d8805c2af2fae4d64e3dee99abd73ecfa9 (diff) | |
download | frameworks_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.java | 40 |
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); + } + } } |