转载请注明出处:http://blog.csdn.net/crazy1235/article/details/51820937
AppCompatDelegateImpl.java
@Override
public void initWindowDecorActionBar() {
ensureSubDecor();
if (!mHasActionBar || mActionBar != null) {
return;
}
if (mOriginalWindowCallback instanceof Activity) {
mActionBar = new WindowDecorActionBar((Activity) mOriginalWindowCallback,
mOverlayActionBar);
} else if (mOriginalWindowCallback instanceof Dialog) {
mActionBar = new WindowDecorActionBar((Dialog) mOriginalWindowCallback);
}
if (mActionBar != null) {
mActionBar.setDefaultDisplayHomeAsUpEnabled(mEnableDefaultActionBarUp);
}
}
WindowDecorActionBar.java
public WindowDecorActionBar(Activity activity, boolean overlayMode) {
mActivity = activity;
Window window = activity.getWindow();
View decor = window.getDecorView();
init(decor);
if (!overlayMode) {
mContentView = decor.findViewById(android.R.id.content);
}
}
private void init(View decor) {
mOverlayLayout = (ActionBarOverlayLayout) decor.findViewById(R.id.decor_content_parent);
if (mOverlayLayout != null) {
mOverlayLayout.setActionBarVisibilityCallback(this);
}
mDecorToolbar = getDecorToolbar(decor.findViewById(R.id.action_bar));
mContextView = (ActionBarContextView) decor.findViewById(
R.id.action_context_bar)