Czy jest jakiś sposób, aby dodać przycisk u dołu ekranu preferencji i sprawić, by działały poprawnie podczas przewijania?
android
android-preferences
vlaku
źródło
źródło
Odpowiedzi:
Istnieje inne rozwiązanie umożliwiające dostosowanie wyglądu preferencji.
Zaprojektuj normalny układ XML z przyciskami lub czymkolwiek, co chcesz dodać do standardowych preferencji. Uwzględnij
ListView
w swoim układzie i nadaj mu identyfikator@android:id/list
.Powiedzmy, że nazywamy plik układu
res/layout/main.xml
. Może to wyglądać mniej więcej tak:W swoim
PreferenceActivity
, dodaj te dwie linie doonCreate
:W
ListView
twoim układzie zostaną wtedy zastąpione preferencjami zdefiniowanymi w zwykły sposóbres/xml/preferences.xml
.źródło
Wiem, że to trochę za późno, ale właśnie znalazłem rozwiązanie, które lubię bardziej niż chwalone rozwiązanie Maxa.
Możesz po prostu dodać stopkę (lub, jeśli chcesz, aby przycisk był na górze, nagłówek) do ListView PreferenceActivity w następujący sposób:
Mam nadzieję, że to komuś pomoże.
źródło
ListView
z PreferenceFragment :(PreferenceFragment
ma własną listę), ale rozwiązałem to, po prostu tworzącPreference
i ustawiającIntent
na nim. Nie było potrzeby tworzenia guzika (przynajmniej w moim przypadku)Poniższy przykład wyrenderuje przycisk u dołu strony (na wypadek, gdyby ktoś był nadal zainteresowany).
W przypadku LinearLayout można również zastosować wagi; jest to potrzebne, ponieważ Listview jest ustawiony na * fill_parent *. Zwykle robię to, dodając * android: layout_weight *:
Poniższe wyjaśnienie nie jest prawdopodobnie w 100%, ale pomoże ci zrozumieć ...
Można też powiedzieć, że Button nie ma wagi; przycisk jest renderowany z wysokością 0 dp.
Teraz po dodaniu layout_weigths pozwoli to renderować przycisk inview
źródło
Właściwie jest rozwiązanie. Oto kod, mam nadzieję, że przyda się każdemu. Wygląda na to, że 3 opcje i 2 przyciski u dołu ekranu, niezależnie od rozdzielczości ekranu (było ustawione na 240 jako najniższą)
źródło
Wystarczy użyć PreferenceFragment w ramach ogólnego działania i dodać przycisk do układu działania.
SettingActivity.java
ustawienie_czynności
źródło
buttonSave
:)Tak będzie wyglądał kod w działaniu na przykładzie Ronny'ego. Moim zamiarem było umieszczenie menu w dolnej części ekranu.
źródło
Odwołuję się do @Ronnie, używam RelativeLayout i ustawiam wysokość dla layout_height widoku listy, a następnie ustawiam layout_alignParentBottom przycisku = "true". Może on renderować przycisk na dole PreferenceScreen; następnie użyj drogi @Max. działa na moje potrzeby.
źródło
Możliwe jest również dodanie przycisków akcji do paska akcji w przypadku standardowego podejścia systemu Android.
źródło
Widok niestandardowy w działaniu Preference pomoże to dodać widok niestandardowy w PreferenceActivity w systemie Android.
Tworzenie main.xml, jedyny widok to konieczne ListView, o identyfikatorze
android:id="@android:id/list"
.Utwórz CustomPreferenceActivity.java
źródło
Poniżej przedstawiono proste rozwiązanie umożliwiające dodanie klikalnego przycisku do ekranu preferencji. Jest to łatwe, ponieważ preferencje już rezerwują miejsce w android: widgetLayout, a przycisk może przechodzić przez kliknięcia z android: onClick.
Najpierw utwórz plik button.xml z zawartością
Teraz w Twoim preferencjach.xml dodaj preferencję
Twoja PreferenceActivity musi teraz zawierać tylko element członkowski onButtonClick
źródło
preferencje.xml:
SettingsFragment.java:
źródło
Zauważyłem, że wszystkie powyższe odpowiedzi są nie do użytku, ponieważ wszelkie układy, które utworzyłem w celu „zawinięcia”
PreferenceScreen
kontenera w niestandardowe układy (a następnie dodanie przycisku poniżejListView
) w rzeczywistości nie działały.Nakładali tylko układ niestandardowy na górę listy preferencji (ruchomy), a kliknięcie (np.) Nowego przycisku niestandardowego wywołałoby tylko preferencję znajdującą się pod przyciskiem.
Jednak znalazłem to rozwiązanie, które działa świetnie, dodając przycisk poniżej kontenera listy preferencji podczas używania
PreferenceFragment
.źródło