public void onConfigurationChanged(Configuration newConfig) {
mCalled = true;
mFragments.dispatchConfigurationChanged(newConfig);
if (mWindow != null) {
mWindow.onConfigurationChanged(newConfig);
}
if (mActionBar != null) {
mActionBar.onConfigurationChanged(newConfig);
}
}
FragmentManager.java
public void dispatchConfigurationChanged(Configuration newConfig) {
if (mActive != null) {
for (int i=0; i<mAdded.size(); i++) {
Fragment f = mAdded.get(i);
if (f != null) {
f.onConfigurationChanged(newConfig);
}
}
}
}
phoneWindow.java
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (mActionBar == null) {
PanelFeatureState st = getPanelState(FEATURE_OPTIONS_PANEL, false);
if ((st != null) && (st.menu != null)) {
if (st.isOpen) {
final Bundle state = new Bundle();
if (st.iconMenuPresenter != null) {
st.iconMenuPresenter.saveHierarchyState(state);
}
if (st.listMenuPresenter != null) {
st.listMenuPresenter.saveHierarchyState(state);
}
clearMenuViews(st);
reopenMenu(false);
if (st.iconMenuPresenter != null) {
st.iconMenuPresenter.restoreHierarchyState(state);
}
if (st.listMenuPresenter != null) {
st.listMenuPresenter.restoreHierarchyState(state);
}
} else {
clearMenuViews(st);
}
}
}
}
ActionVarImpl.java
public void onConfigurationChanged(Configuration newConfig) {
setHasEmbeddedTabs(mContext.getResources().getBoolean(
com.android.internal.R.bool.action_bar_embed_tabs));
}
private void setHasEmbeddedTabs(boolean hasEmbeddedTabs) {
mHasEmbeddedTabs = hasEmbeddedTabs;
if (!mHasEmbeddedTabs) {
mActionView.setEmbeddedTabView(null);
mContainerView.setTabContainer(mTabScrollView);
} else {
mContainerView.setTabContainer(null);
mActionView.setEmbeddedTabView(mTabScrollView);
}
final boolean isInTabMode = getNavigationMode() == NAVIGATION_MODE_TABS;
if (mTabScrollView != null) {
mTabScrollView.setVisibility(isInTabMode ? View.VISIBLE : View.GONE);
}
mActionView.setCollapsable(!mHasEmbeddedTabs && isInTabMode);
}