Utworzono PreferenceFragment z dwiema kategoriami i jednym polem wyboru, jednak gdy wyświetlam go w mojej aplikacji, tło wydaje się przezroczyste.PreferenceFragment z przezroczystym tłem?
Widzę główne działania, pola i PreferenceFragmenty są ułożone nad najważniejszymi z głównego działania ... jakie jest rozwiązanie tego?
W moim głównym działalności Robię to, aby otworzyć PreferenceFragment gdy przycisk Ustawienia wybrano:
@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);
}
}
Mój kod PreferenceFragment wygląda następująco: public class SettingsFragment rozciąga PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
Moje preferencje.xml wygląda następująco:
<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>
Próbowałem, co sugerowała inna odpowiedź na temat Stack Overflow i dodałem to do mojego Fragmentu Preferencji, chociaż blokuje ono pola widoczne z Głównej Aktywności, to po prostu wydaje się być maską, ponieważ pola fragmentów również są pod wpływem kolor, który ustawiłem:
@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;
}
Dzięki za pomoc !!!
EDIT: Myślę, że odpowiedział na moje własne pytanie podczas pisania tego na zewnątrz ... I dodaje:
addPreferencesFromResource(R.xml.preferences);
Po wykonaniu:
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(getResources().getColor(android.R.color.black));
Czy to właściwy sposób należy rozwiązać ten problem?
Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. –
Masz rację. Chyba byłem po prostu leniwy. Ulepszyłem odpowiedź nieco bardziej. – himahimahima