Add the capability to set a pinned header to SettingsPreferenceFragment
- add a FrameLayout into the preference list fragment
- add public void setPinnedHeaderView(View pinnedHeader) and
clearPinnedHeaderView() APIs for adding and clearing the pinned header
Change-Id: I50ba5dd150167e0d49cc54bee1203f46db6d7a66
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 8661956..097fb95 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -33,10 +33,12 @@
import android.preference.PreferenceGroupAdapter;
import android.text.TextUtils;
import android.util.Log;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
@@ -77,6 +79,8 @@
}
};
+ private ViewGroup mPinnedHeaderFrameLayout;
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -93,6 +97,24 @@
}
@Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ final View root = super.onCreateView(inflater, container, savedInstanceState);
+ mPinnedHeaderFrameLayout = (ViewGroup) root.findViewById(R.id.pinned_header);
+ return root;
+ }
+
+ public void setPinnedHeaderView(View pinnedHeader) {
+ mPinnedHeaderFrameLayout.addView(pinnedHeader);
+ mPinnedHeaderFrameLayout.setVisibility(View.VISIBLE);
+ }
+
+ public void clearPinnedHeaderView() {
+ mPinnedHeaderFrameLayout.removeAllViews();
+ mPinnedHeaderFrameLayout.setVisibility(View.GONE);
+ }
+
+ @Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);