Ich habe ein PreferenceFragment mit zwei Kategorien und einem Kontrollkästchen erstellt, aber wenn ich es in meiner App anzeigen lasse, scheint der Hintergrund transparent zu sein.PreferenceFragment mit transparentem Hintergrund?
Ich kann die Hauptaktivitäten sehen, Felder und die PreferenceFragments sind über denen der Haupttätigkeit gelegt ... was ist die Lösung dafür?
In meiner Haupttätigkeit mache ich das das PreferenceFragment zu öffnen, wenn die Schaltfläche Einstellungen gewählt:
@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);
}
}
Mein PreferenceFragment Code sieht wie folgen aus: public class SettingsFragment erweitert PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
Meine preferences.xml sieht so aus:
<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>
Ich habe versucht, was eine andere Antwort auf Stack Overflow vorgeschlagen und fügte diese zu meinem Preference Fragment, obwohl es die Felder aus der Main Activity blockiert, scheint es nur eine Maske zu sein, weil die Fragmentfelder auch durch die beeinflusst werden Farbe, die ich einstelle:
@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;
}
Danke für die Hilfe !!!
EDIT: Ich denke, antwortete ich meine eigene Frage, während diese aus der Eingabe ... Ich fügte hinzu:
addPreferencesFromResource(R.xml.preferences);
Nachdem ich:
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(getResources().getColor(android.R.color.black));
Ist das der richtige Weg, dies zu lösen?
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. –
Ja, du hast Recht. Ich glaube, ich war nur faul. Die Antwort ein bisschen mehr ausgearbeitet. – himahimahima