Gibt es eine Möglichkeit, am unteren Rand des Einstellungsbildschirms eine Schaltfläche hinzuzufügen, damit diese beim Scrollen korrekt funktioniert?
android
android-preferences
vlaku
quelle
quelle
Antworten:
Es gibt eine andere Lösung zum Anpassen des Erscheinungsbilds der Einstellungen.
Entwerfen Sie ein normales XML-Layout mit Schaltflächen oder was auch immer Sie zu den Standardeinstellungen hinzufügen möchten. Fügen Sie ein
ListView
in Ihr Layout ein und geben Sie ihm die ID@android:id/list
.Angenommen, wir rufen die Layoutdatei auf
res/layout/main.xml
. Es könnte ungefähr so aussehen:Fügen Sie in Ihrem
PreferenceActivity
diese beiden Zeilen hinzuonCreate
:Das
ListView
in Ihrem Layout wird dann durch die Einstellungen ersetzt, die auf die übliche Weise in definiert wurdenres/xml/preferences.xml
.quelle
Ich weiß, dass dies etwas spät ist, aber ich habe gerade eine Lösung gefunden, die mir besser gefällt als Max 'gelobte Lösung.
Sie können der ListView von PreferenceActivity einfach eine Fußzeile (oder, wenn die Schaltfläche oben angezeigt werden soll, eine Kopfzeile) wie folgt hinzufügen:
Ich hoffe das hilft jemandem.
quelle
ListView
mit PreferenceFragment bekommen :(PreferenceFragment
es eine eigene Liste hat), aber ich habe es gelöst, indem ich einfach ein erstelltPreference
und einIntent
darauf gesetzt habe. Es war nicht nötig, eine Schaltfläche zu erstellen (zumindest in meinem Fall)In diesem Beispiel unten wird eine Schaltfläche am unteren Rand der Seite gerendert (falls noch jemand interessiert ist).
Im Falle eines LinearLayout können Sie auch Gewichte anwenden. Dies ist erforderlich, da die Listenansicht auf * fill_parent * gesetzt ist. Normalerweise füge ich dazu * android: layout_weight * hinzu:
Die folgende Erklärung ist wahrscheinlich nicht 100%, aber sie wird Ihnen helfen zu verstehen ...
Man könnte auch sagen, weil der Knopf kein Gewicht hat; Die Schaltfläche wird in einer Höhe von 0 dp gerendert.
Wenn nun die layout_weigths hinzugefügt werden, wird die Schaltfläche zum Rendern der Schaltfläche angezeigt
quelle
Eigentlich gibt es eine Lösung. Hier ist ein Code, ich hoffe, dieser wird für jeden nützlich sein. Es sieht aus wie 3 Optionen und 2 Schaltflächen am unteren Bildschirmrand, unabhängig von der Bildschirmauflösung (wurde auf 240 als niedrigste Zielvorgabe festgelegt).
quelle
Sie müssen nur PreferenceFragment in der allgemeinen Aktivität verwenden und die Schaltfläche zum Aktivitätslayout hinzufügen.
SettingActivity.java
activity_setting
quelle
buttonSave
:)So würde der Code in der Aktivität am Beispiel des Ronny aussehen. Meine Absicht war es, ein Menü am unteren Rand des Bildschirms einzufügen.
quelle
Ich verweise auf @Ronnie, verwende RelativeLayout und lege eine Höhe für layout_height der Listenansicht fest und setze dann das layout_alignParentBottom = "true" der Schaltfläche. Es kann eine Schaltfläche am unteren Rand von PreferenceScreen rendern. Verwenden Sie dann den Weg von @Max. es funktioniert für meine Bedürfnisse.
quelle
Es ist auch möglich, Aktionsschaltflächen zur Aktionsleiste für einen Android-Standardansatz hinzuzufügen.
quelle
Benutzerdefinierte Ansicht in Voreinstellungsaktivität Dies hilft beim Hinzufügen einer benutzerdefinierten Ansicht in Voreinstellungsaktivität in Android.
Erstellen Sie die Datei main.xml. Die einzige erforderliche Ansicht ist eine ListView mit der ID :
android:id="@android:id/list"
.Erstellen Sie CustomPreferenceActivity.java
quelle
Das Folgende ist eine einfache Lösung, um Ihrem Einstellungsbildschirm eine anklickbare Schaltfläche hinzuzufügen. Dies wird vereinfacht, da die Einstellungen bereits den Platz im android: widgetLayout reservieren und die Schaltfläche Klicks mit android: onClick übergeben kann.
Erstellen Sie zunächst eine button.xml mit dem Inhalt
Fügen Sie nun in Ihrer Einstellungen.xml die Einstellungen hinzu
Ihre PreferenceActivity muss jetzt nur noch ein onButtonClick-Mitglied enthalten
quelle
Einstellungen.xml:
SettingsFragment.java:
quelle
Ich fand alle oben genannten Antworten nicht verwendbar, da alle Layouts, die ich erstellt habe, um den
PreferenceScreen
Container in benutzerdefinierte Layouts zu "verpacken" (und dann eine Schaltfläche unter dem hinzufügenListView
), nicht funktionierten.Sie überlagerten nur das benutzerdefinierte Layout über der Voreinstellungsliste (schwebend), und wenn Sie auf eine neue benutzerdefinierte Schaltfläche klicken (z. B.), wird nur die Voreinstellung unter der Schaltfläche aufgerufen.
Ich habe jedoch diese Lösung gefunden , die bei der Verwendung eine Schaltfläche zum Hinzufügen einer Schaltfläche unter dem Voreinstellungslistencontainer verwendet
PreferenceFragment
.quelle