PreferenceFragment superpone la barra de herramientas

Como el título, mi PreferenceFragment se superpone a mi barra de herramientas. Ya he probado diferentes soluciones, pero el problema persiste. Esperanzas en cualquier ayuda. Aquí está mi código.

Actividad:

import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; public class MyActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar); setSupportActionBar(toolbar); // Display the fragment as the main content getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); } } 

Actividad XML (activity_settings.xml):

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mypackage.MyActivity"> <include layout="@layout/app_bar" /> <FrameLayout android:id="@+id/pref_content" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/app_bar"/> </RelativeLayout> 

Fragmento (SettingsFragment.java):

 import android.preference.PreferenceFragment; import android.os.Bundle; public class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.pref_settings); } } 

Fragmento XML (pref_settings.xml):

 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="pref_checkbox" android:title="Title" android:summary="Summary" android:defaultValue="false"/> </PreferenceScreen> 

Barra de herramientas (app_bar.xml):

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/app_bar" android:background="@color/primaryColor" android:elevation="3dp" app:theme="@style/ThemeOverlay.AppCompat.Dark" /> 

cambia esto:

  getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); 

a:

  getFragmentManager().beginTransaction().replace(R.id.pref_content, new SettingsFragment()).commit(); 

También me enfrenté a un tipo de problema similar. Y lo he resuelto mediante la adición de relleno a la vista en el método onCreateView() . Este artículo también me ayudó a resolver mi problema.

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); // calculate margins int horizontalMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, getResources().getDisplayMetrics()); int verticalMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, getResources().getDisplayMetrics()); int topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (int) getResources().getDimension(R.dimen.activity_vertical_margin) + 30, getResources().getDisplayMetrics()); view.setPadding(horizontalMargin, topMargin, horizontalMargin, verticalMargin); return view; } 

Finalmente resolví el problema también reemplazando en Activity XML esto:

 <include layout="@layout/app_bar" /> 

con una nueva barra de herramientas:

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/app_bar_settings" android:background="@color/primaryColor" android:elevation="3dp" android:theme="@style/ThemeOverlay.AppCompat.Dark" /> 
  • Cómo agregar varios marcos en xml
  • Android - El botón de radio no muestra su texto
  • Cambiar el tamaño del mapa de bits dentro de una lista de capas
  • Diseño del centro Android
  • No se puede iniciar la actividad ComponentInfo {com.example.countryselect / com.example.countryselect.OfferSelect}
  • Emoji símbolo 👍 en string.xml bloquea la aplicación
  • Archivo binario línea # 7: Debe proporcionar un atributo layout_width
  • Android: ¿La mejor biblioteca de análisis XML?
  • Cómo poner TODO comentarios en xml?
  • Android etiqueta XML llamado comer-comentario, ¿cuál es su uso?
  • ¿Por qué el margen no funciona?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.