From 7163d771088906d1beb8a9503175b4cc708ace4c Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 29 Mar 2016 10:30:13 -0700 Subject: [PATCH] Allow fragments set their own header view below actionbar. Bug: 27751187 Bug: 28269035 Change-Id: Iac081c009800a71afe413cf63ddd9788b2e90d6a (cherry picked from commit ff2e0f4be8d0085f6db2315bcf184eccdbb69554) --- .../SettingsLib/res/layout/settings_with_drawer.xml | 5 +++++ .../settingslib/drawer/SettingsDrawerActivity.java | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/SettingsLib/res/layout/settings_with_drawer.xml b/packages/SettingsLib/res/layout/settings_with_drawer.xml index 67296a6c251d8..a68a44e093719 100644 --- a/packages/SettingsLib/res/layout/settings_with_drawer.xml +++ b/packages/SettingsLib/res/layout/settings_with_drawer.xml @@ -40,6 +40,11 @@ style="?android:attr/toolbarStyle" android:background="?android:attr/colorPrimary" /> + mCategoryListeners = new ArrayList<>(); private SettingsDrawerAdapter mDrawerAdapter; + private FrameLayout mContentHeaderContainer; private DrawerLayout mDrawerLayout; private boolean mShowingMenu; @@ -78,6 +81,7 @@ public class SettingsDrawerActivity extends Activity { requestWindowFeature(Window.FEATURE_NO_TITLE); } super.setContentView(R.layout.settings_with_drawer); + mContentHeaderContainer = (FrameLayout) findViewById(R.id.content_header_container); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); if (mDrawerLayout == null) { return; @@ -174,6 +178,13 @@ public class SettingsDrawerActivity extends Activity { } } + public void setContentHeaderView(View headerView) { + mContentHeaderContainer.removeAllViews(); + if (headerView != null) { + mContentHeaderContainer.addView(headerView); + } + } + @Override public void setContentView(@LayoutRes int layoutResID) { final ViewGroup parent = (ViewGroup) findViewById(R.id.content_frame);