Wie füge ich Ansichten wie TextView
s zur Android-App hinzu und entferne sie, wie auf dem ursprünglichen Standard-Android-Kontaktbildschirm, auf dem Sie ein kleines Symbol auf der rechten Seite eines Felds drücken und ein Feld hinzufügen oder löschen, das aus einem TextView
und einem editTextView
(von was) besteht Ich kann es sehen).
Irgendwelche Beispiele, wie dies erreicht werden kann?
android
android-view
Jonathan
quelle
quelle
Ich benötige genau die gleiche Funktion, die in dieser Frage beschrieben wird. Hier ist meine Lösung und mein Quellcode: https://github.com/laoyang/android-dynamic-views . Und Sie können die Video-Demo hier in Aktion sehen: http://www.youtube.com/watch?v=4HeqyG6FDhQ
Layout
Grundsätzlich werden Sie zwei XML-Layout-Dateien:
TextEdit
, a ,Spinner
und einemImageButton
für die Löschung.Steuerung
Im Java-Code können Sie Zeilenansichten mithilfe von inflate, addView, removeView usw. dynamisch zum Container hinzufügen und daraus entfernen. In der Standard-Android-App gibt es einige Sichtbarkeitssteuerungen für eine bessere Benutzeroberfläche. Sie müssen in jeder Zeile einen TextWatcher für die EditText-Ansicht hinzufügen: Wenn der Text leer ist, müssen Sie die Schaltfläche Neu hinzufügen und die Schaltfläche Löschen ausblenden . In meinem Code habe ich eine
void inflateEditRow(String)
Hilfsfunktion für die gesamte Logik geschrieben.Andere Tricks
android:animateLayoutChanges="true"
XML einstellen, um die Animation zu aktivierenQuellcode
Der Java-Code der Hauptaktivität (Dies erklärt die gesamte Logik, aber einige Eigenschaften sind in XML-Layoutdateien festgelegt. Eine vollständige Lösung finden Sie in der Github-Quelle.)
quelle
Dies ist mein allgemeiner Weg:
quelle
Hallo, Sie können dies auf diese Weise versuchen, indem Sie ein relatives Layout hinzufügen und dann eine Textansicht hinzufügen.
quelle
Die ViewGroup- Klasse bietet eine API für die Verwaltung untergeordneter Ansichten zur Laufzeit, mit der auch Ansichten hinzugefügt / entfernt werden können.
Einige andere Links zu diesem Thema:
Android, neue Ansicht ohne XML-Layout hinzufügen
Android Runtime Layout Tutorial
http://developer.android.com/reference/android/view/View.html
http://developer.android.com/reference/android/widget/LinearLayout.html
quelle
Verwenden
myView.setVisibility(View.GONE);
Sie einfach , um es vollständig zu entfernen. Wenn Sie jedoch den belegten Speicherplatz innerhalb des übergeordneten Bereichs reservieren möchtenmyView.setVisibility(View.INVISIBLE);
quelle
View.INVISIBLE
nur die Ansicht ausgeblendet wird. DasOnClickListener
(falls festgelegt) reagiert weiterhin auf den Benutzer, wenn er den Bereich berührt , in dem die Ansicht vorhanden ist (aber nicht sichtbar ist). Also sollten SieOnClickListeners
in solchen Fällen idealerweise auch entfernenZum Hinzufügen der Schaltfläche
Zum Entfernen der Taste
quelle
Hallo, schreibe zuerst die Aktivitätsklasse. Die folgende Klasse hat einen Kategorienamen und eine kleine Schaltfläche zum Hinzufügen. Wenn Sie auf die Schaltfläche Hinzufügen (+) klicken, wird die neue Zeile hinzugefügt, die einen EditText und einen ImageButton enthält, der das Löschen der Zeile ausführt.
2. Schreiben Sie die Layout-XML wie unten angegeben.
quelle
// Nun füge xml main hinzu
// Jetzt View XML Datei hinzufügen ..
quelle
Kotlin-Erweiterungslösung
Hinzufügen
removeSelf
, um eine Ansicht direkt aufzurufen. Wenn es an ein übergeordnetes Element angehängt ist, wird es entfernt. Dies macht Ihren Code deklarativer und damit lesbarer.Hier sind 3 Optionen zum programmgesteuerten Hinzufügen einer Ansicht zu a
ViewGroup
.quelle