ActionBarOverlayLayout.java revision 20ac724a3a836bfd362c911f7dc55a61c02b4d44
1bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/* 2bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Copyright (C) 2012 The Android Open Source Project 3bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 4bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 5bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * you may not use this file except in compliance with the License. 6bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * You may obtain a copy of the License at 7bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 8bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * http://www.apache.org/licenses/LICENSE-2.0 9bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * 10bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Unless required by applicable law or agreed to in writing, software 11bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * distributed under the License is distributed on an "AS IS" BASIS, 12bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * See the License for the specific language governing permissions and 14bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * limitations under the License. 15bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 16bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 17bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpackage android.support.appcompat.widget; 18bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 19bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.content.Context; 20bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.content.res.TypedArray; 21bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.graphics.Rect; 22bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.R; 23bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.app.ActionBar; 24bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.app.ActionBarImplCompat; 25bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.util.AttributeSet; 26bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.View; 27bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.widget.FrameLayout; 28bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell 29bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/** 3020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * Special layout for the containing of an overlay action bar (and its content) to correctly handle 3120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns * fitting system windows when the content has request that its layout ignore them. 32bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */ 33bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpublic class ActionBarOverlayLayout extends FrameLayout { 3420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 3520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private int mActionBarHeight; 3620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private ActionBar mActionBar; 3720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // TODO(trevorjohns): Should this be ActionBarImplCompat? 3820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private int mWindowVisibility = View.VISIBLE; 3920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private View mContent; 4020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private View mActionBarTop; 4120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private ActionBarContainer mContainerView; 4220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private ActionBarView mActionView; 4320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private View mActionBarBottom; 4420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private int mLastSystemUiVisibility; 4520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private final Rect mZeroRect = new Rect(0, 0, 0, 0); 4620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 4720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns static final int[] mActionBarSizeAttr = new int[]{ 4820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns android.support.appcompat.R.attr.actionBarSize 4920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns }; 5020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 5120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public ActionBarOverlayLayout(Context context) { 5220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns super(context); 5320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns init(context); 5420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 5520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 5620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public ActionBarOverlayLayout(Context context, AttributeSet attrs) { 5720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns super(context, attrs); 5820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns init(context); 59bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 6020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 6120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private void init(Context context) { 6220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns TypedArray ta = getContext().getTheme().obtainStyledAttributes(mActionBarSizeAttr); 6320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mActionBarHeight = ta.getDimensionPixelSize(0, 0); 6420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns ta.recycle(); 65bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 6620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 6720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void setActionBar(ActionBarImplCompat impl) { 6820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mActionBar = impl; 6920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (getWindowToken() != null) { 7020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // This is being initialized after being added to a window; 7120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // make sure to update all state now. 7220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // TODO(trevorjohns): Non-public method. Probably okay, but test. (Also below.) 7320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // TOOD(trevorjohns): Might make sense to strip out visibility handling in general. 7420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // mActionBar.setWindowVisibility(mWindowVisibility); 7520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mLastSystemUiVisibility != 0) { 7620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns int newVis = mLastSystemUiVisibility; 7720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // Removed: Not relevant on older devices 7820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // onWindowSystemUiVisibilityChanged(newVis); 7920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // requestFitSystemWindows(); 8020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 8120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 82bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 8320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 8420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // Removed: Not relevant for older devices 8520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /*public void setShowingForActionMode(boolean showing) { 8620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (showing) { 8720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // Here's a fun hack: if the status bar is currently being hidden, 8820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // and the application has asked for stable content insets, then 8920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // we will end up with the action mode action bar being shown 9020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // without the status bar, but moved below where the status bar 9120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // would be. Not nice. Trying to have this be positioned 9220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // correctly is not easy (basically we need yet *another* content 9320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // inset from the window manager to know where to put it), so 9420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // instead we will just temporarily force the status bar to be shown. 9520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if ((getWindowSystemUiVisibility() & (SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 9620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns | SYSTEM_UI_FLAG_LAYOUT_STABLE)) 9720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns == (SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | SYSTEM_UI_FLAG_LAYOUT_STABLE)) { 9820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns setDisabledSystemUiVisibility(SYSTEM_UI_FLAG_FULLSCREEN); 9920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 10020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } else { 10120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns setDisabledSystemUiVisibility(0); 10220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 10320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns }*/ 10420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 10520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // Removed: Not relevant for older devices 10620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /*@Override 10720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns public void onWindowSystemUiVisibilityChanged(int visible) { 10820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns super.onWindowSystemUiVisibilityChanged(visible); 10920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns pullChildren(); 11020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns final int diff = mLastSystemUiVisibility ^ visible; 11120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mLastSystemUiVisibility = visible; 11220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns final boolean barVisible = (visible&SYSTEM_UI_FLAG_FULLSCREEN) == 0; 11320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns final boolean wasVisible = mActionBar != null ? mActionBar.isSystemShowing() : true; 11420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mActionBar != null) { 11520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (barVisible) mActionBar.showForSystem(); 11620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns else mActionBar.hideForSystem(); 11720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 11820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if ((diff&SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0) { 11920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mActionBar != null) { 12020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns requestFitSystemWindows(); 12120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 12220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 12320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns }*/ 12420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 12520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns @Override 12620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns protected void onWindowVisibilityChanged(int visibility) { 12720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns super.onWindowVisibilityChanged(visibility); 12820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mWindowVisibility = visibility; 12920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // See above. 13020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns //if (mActionBar != null) { 13120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // mActionBar.setWindowVisibility(visibility); 13220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns //} 133bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 13420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 13520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns private boolean applyInsets(View view, Rect insets, boolean left, boolean top, 13620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns boolean bottom, boolean right) { 13720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns boolean changed = false; 13820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) view.getLayoutParams(); 13920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (left && lp.leftMargin != insets.left) { 14020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed = true; 14120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns lp.leftMargin = insets.left; 14220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 14320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (top && lp.topMargin != insets.top) { 14420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed = true; 14520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns lp.topMargin = insets.top; 14620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 14720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (right && lp.rightMargin != insets.right) { 14820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed = true; 14920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns lp.rightMargin = insets.right; 15020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 15120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (bottom && lp.bottomMargin != insets.bottom) { 15220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed = true; 15320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns lp.bottomMargin = insets.bottom; 15420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 15520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns return changed; 156bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 15720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 15820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // Removed: 15920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns /*@Override 16020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns protected boolean fitSystemWindows(Rect insets) { 16120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns pullChildren(); 16220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 16320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns final int vis = getWindowSystemUiVisibility(); 16420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns final boolean stable = (vis & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0; 16520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 16620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // The top and bottom action bars are always within the content area. 16720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns boolean changed = applyInsets(mActionBarTop, insets, true, true, false, true); 16820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mActionBarBottom != null) { 16920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed |= applyInsets(mActionBarBottom, insets, true, false, true, true); 17020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 17120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 17220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // If the window has not requested system UI layout flags, we need to 17320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // make sure its content is not being covered by system UI... though it 17420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // will still be covered by the action bar since they have requested it to 17520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // overlay. 17620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if ((vis & SYSTEM_UI_LAYOUT_FLAGS) == 0) { 17720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed |= applyInsets(mContent, insets, true, true, true, true); 17820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // The insets are now consumed. 17920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns insets.set(0, 0, 0, 0); 18020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } else { 18120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns changed |= applyInsets(mContent, mZeroRect, true, true, true, true); 18220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 18320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 18420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 18520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (stable || mActionBarTop.getVisibility() == VISIBLE) { 18620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // The action bar creates additional insets for its content to use. 18720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns insets.top += mActionBarHeight; 18820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 18920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 19020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mActionBar != null && mActionBar.hasNonEmbeddedTabs()) { 19120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns View tabs = mContainerView.getTabContainer(); 19220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (stable || (tabs != null && tabs.getVisibility() == VISIBLE)) { 19320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // If tabs are not embedded, adjust insets to account for them. 19420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns insets.top += mActionBarHeight; 19520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 19620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 19720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 19820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mActionView.isSplitActionBar()) { 19920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (stable || (mActionBarBottom != null 20020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns && mActionBarBottom.getVisibility() == VISIBLE)) { 20120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns // If action bar is split, adjust buttom insets for it. 20220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns insets.bottom += mActionBarHeight; 20320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 20420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 20520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 20620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (changed) { 20720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns requestLayout(); 20820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 20920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 21020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns return super.fitSystemWindows(insets); 21120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns }*/ 21220ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns 21320ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns void pullChildren() { 21420ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns if (mContent == null) { 21520ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mContent = findViewById(R.id.action_bar_activity_content); 21620ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mActionBarTop = findViewById(R.id.top_action_bar); 21720ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mContainerView = (ActionBarContainer) findViewById( 21820ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns R.id.action_bar_container); 21920ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mActionView = (ActionBarView) findViewById(R.id.action_bar); 22020ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns mActionBarBottom = findViewById(R.id.split_action_bar); 22120ac724a3a836bfd362c911f7dc55a61c02b4d44Trevor Johns } 222bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell } 223bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell} 224