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:
- Error: (27) No se encontró ningún identificador de recurso para el atributo 'srcCompat' en el paquete 'com.example.jaisonjoseph.newsclient'
- GUI de Android con Eclipse
- ¿Cómo agregar el borde coloreado en cardview?
- ¿Por qué la gravedad no funciona cuando se aplica al diseño relativo?
- problema de glowpadview con xml
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" />
- Elemento RelativeLayout debe declararse
- Nuevo en Android - Dibujo de una vista en tiempo de ejecución
- WebView no funciona, el lanzamiento de la URL externa en el navegador. Visualización de la página web en la aplicación
- Android trazo discontinuo potencial ICS potencial error
- No se puede reanudar la actividad
- Duplicar valor en el encabezado de NavigationView después de actualizar el texto del encabezado
- Las clases siguientes no pudieron ser instanciadas: - android.support.v7.widget.Toolbar
- No se encontró ningún identificador de recurso para el atributo 'roundIcon' en el paquete 'android'
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" />
- ProfilePictureView to Bitmap (SDK de Facebook para Android v3)
- ¿Descubre la versión de Android en AOSP en tiempo de compilación de código nativo?