Use themed context to inflate preference views
b/23902759
Change-Id: Ie4b8a0d6d5fee1cf1629a2adb243a10b8a334742
diff --git a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
index 838d32d..c65731b 100644
--- a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
+++ b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
@@ -248,7 +248,15 @@
a.recycle();
- final View view = inflater.inflate(mLayoutResId, container, false);
+ // Need to theme the inflater to pick up the preferenceFragmentListStyle
+ final TypedValue tv = new TypedValue();
+ getActivity().getTheme().resolveAttribute(R.attr.preferenceTheme, tv, true);
+ final int theme = tv.resourceId;
+
+ final Context themedContext = new ContextThemeWrapper(inflater.getContext(), theme);
+ final LayoutInflater themedInflater = inflater.cloneInContext(themedContext);
+
+ final View view = themedInflater.inflate(mLayoutResId, container, false);
final View rawListContainer = view.findViewById(R.id.list_container);
if (!(rawListContainer instanceof ViewGroup)) {
@@ -258,7 +266,7 @@
final ViewGroup listContainer = (ViewGroup) rawListContainer;
- final RecyclerView listView = onCreateRecyclerView(inflater, listContainer,
+ final RecyclerView listView = onCreateRecyclerView(themedInflater, listContainer,
savedInstanceState);
if (listView == null) {
throw new RuntimeException("Could not create RecyclerView");
diff --git a/v17/preference-leanback/res/layout/leanback_preferences_list.xml b/v17/preference-leanback/res/layout/leanback_preferences_list.xml
index 15ecebc..21e4e4a 100644
--- a/v17/preference-leanback/res/layout/leanback_preferences_list.xml
+++ b/v17/preference-leanback/res/layout/leanback_preferences_list.xml
@@ -19,4 +19,5 @@
android:id="@+id/list"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ style="?attr/preferenceFragmentListStyle" />