Aplicar tema personalizado a PreferenceFragment

Tengo vista de múltiples paneles con el fragmento izquierdo y derecho. En el fragmento derecho estoy lanzando un PreferenceFragment. El problema es que el fragmento se ve completamente distorsionado sin ningún estilo. ¿Hay una manera de aplicar el tema sólo al PreferenceFragment solo?

Lo intenté pero no funcionó

Mi código

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // create ContextThemeWrapper from the original Activity Context with the custom theme final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.AppTheme_PreferenceTheme); // clone the inflater using the ContextThemeWrapper LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); View view = super.onCreateView(localInflater, container, savedInstanceState); return view; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.app_settings_preference_layout); } 

Creo que la solución no funcionó porque ya he inflado el diseño de preferencias en onCreate. ¿Hay una manera de inflar la disposición de la preferencia sin usar el método addPreferencesFromResource y apenas usar el servicio de LayoutInflater?

One Solution collect form web for “Aplicar tema personalizado a PreferenceFragment”

Usted no necesita utilizar onCreateView ()

usted puede:

1) definir el diseño de la aplicación y fragmentos en su actividad xml por ejemplo:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ..blabla <LinearLayout <fragment android:layout_width="match_parent" android:layout_height="wrap_content" android:name="com.xxx.MyPreferencesFragment1" //your own extended class android:id="@+id/preference_fragment1"/> <fragment android:name="com.xxx.MyPreferencesFragment2" //your own extended class android:id="@+id/preference_fragment2"/> </LinearLayout> </RelativeLayout> 

con

 public class MyPreferencesFragment1 extends PreferenceFragment { // Required empty public constructor @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences1); 

O usted puede:

2) sólo definen un diseño de marcador de posición / contenedor ("R.id.fragments_layout") en la actividad xml, y hacen el resto del código java

 <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/fragments_layout"> // only layout - dont define fragments this case 

Y ofc ahora también necesita inflar el archivo xml de preferencias dentro de este contenedor de diseño

 getFragmentManager().beginTransaction().replace/add(R.id.fragments_layout, new MyPreferencesFragment1()).commit(); getFragmentManager().beginTransaction().replace/add(R.id.fragments_layout, new MyPreferencesFragment2()).commit(); 
  • Obtener la vista de preferencias personalizadas
  • ¿Cómo usar el Porcentaje para el diseño de Android?
  • Iniciar ubicación Configuración intento de preferencias Archivo XML
  • Nombre en su lugar nombre de tono de llamada
  • Cómo administrar divisores en un PreferenceFragment?
  • Mi var pública es invisible a su primo
  • ¿Cómo puedo agregar los tonos de llamada personalizados de mi aplicación en la carpeta res / raw a un ringtonepreference
  • Preferencias personalizadasCategorías
  • SharedPreferences.getInt ("cumulative", 0) catch 22 - ¿cómo resolver?
  • ¿Cómo acceder a widgets en una DialogPreference personalizada con un diseño inflado?
  • Guardar ArrayList en las preferencias compartidas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.