¿PreferenceFragment con el fondo transparente?
He creado un PreferenceFragment con dos categorías y una casilla de verificación, sin embargo, cuando lo muestro en mi aplicación, el fondo parece ser transparente.
Puedo ver las principales actividades, los campos y los de PreferenceFragment se colocan encima de los de la actividad principal … ¿cuál es la solución a esto?
- Cómo setOnTouchListener () en un ListPreference?
- Inicio de Configuración Actividad de Preferencias XML funciona en 2.x pero no en 4.x
- Implementación de "color selector" de Android PreferenceScreen
- ¿Cómo obtener elementos (findViewById) para un diseño que se carga dinámicamente (setView) en un diálogo?
- Usar getSupportFragmentManager () Dentro de PreferenceActivity
En mi actividad principal lo estoy haciendo para abrir el PreferenceFragment cuando el botón de configuración está seleccionado:
@Override public boolean onOptionsItemSelected(MenuItem item) { //handle presses on action bar items switch (item.getItemId()) { case R.id.action_settings: getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); return true; default: return super.onOptionsItemSelected(item); } }
Mi código PreferenceFragment tiene este aspecto: public class SettingsFragment extends PreferenceFragment {
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); } }
Mis preferencias.xml tiene este aspecto:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout="@layout/fragment_settings"> <PreferenceCategory android:title="@string/server_prefs_title" android:key="pref_key_server_settings" > <CheckBoxPreference android:key="pref_server_url" android:title="@string/pref_server_url" android:summary="@string/pref_server_url_summ" android:defaultValue="true" /> </PreferenceCategory> <PreferenceCategory android:title="@string/company_prefs_title" android:key="pref_key_company_settings" > </PreferenceCategory> </PreferenceScreen>
He intentado lo que otra respuesta sobre el desbordamiento de la pila sugirió y agregado esto a mi fragmento de la preferencia, sin embargo, aunque bloquea los campos visibles de la actividad principal, apenas aparece ser una máscara, porque los campos del fragmento también están siendo afectados por el color que Lo puse:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); view.setBackgroundColor(getResources().getColor(android.R.color.black)); return view; }
¡¡¡Gracias por la ayuda!!!
EDIT: Creo que respondí mi propia pregunta mientras escribía esto … He añadido:
addPreferencesFromResource(R.xml.preferences);
Después de hacer:
View view = super.onCreateView(inflater, container, savedInstanceState); view.setBackgroundColor(getResources().getColor(android.R.color.black));
¿Es esa la manera correcta de resolver esto?
- Preferencias de número en la actividad de preferencias en Android
- ¿Hay una manera de mantener los divisores alrededor de una preferencia no seleccionable?
- ¿Cómo detectar si se hicieron cambios en las preferencias?
- Abrir WebView no navegador de preferenciaScreen Android
- Android: Creación de preferencias personalizadas
- ¿Es posible cambiar el resumen de EditTextPreference dinámicamente en Android?
- ¿Cómo mostrar y ocultar las preferencias en Android dinámicamente?
- Cambiar el color de texto PreferenceActivity
Agregue esto en su Fragmento (SettingsFragment) que extiende el archivo PreferenceFragment:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = super.onCreateView(inflater, container, savedInstanceState); view.setBackgroundColor(getResources().getColor(android.R.color.white)); return view; }
La única forma en que podía evitar esos problemas era usar una clase preferenceActivity: ¿Cómo se crean Fragmentos de preferencias y preferencias en Android? Por WannaGetHigh
Intente cambiar todas las importaciones de Fragment a android.app.Fragment en lugar de android.support.v4.app.Fragment. Además, asegúrese de que está accediendo a su gestor de fragmentos con getFragmentManager () no getSupportFramentManager ().
Referencia: http://ausmarton.blogspot.com.au/2014/01/preferencefragment-shows-up-with.html
- ¿Cuál es la mejor manera de crear una notificación de estilo de medios para Android Lollipop mientras se considera la compatibilidad hacia atrás?
- ¿Es posible matar una aplicación "android: persistent = true" a nivel de sistema?