Comment puis-je ajouter et supprimer des vues telles que TextView
s de l' application Android comme sur le stock d' origine contacts Android écran où vous appuyez sur une petite icône sur le côté droit d'un champ et il permet d' ajouter ou de supprimer un champ qui se compose d'un TextView
et un editTextView
(de ce que Je vois).
Des exemples sur la façon d'y parvenir?
android
android-view
Jonathan
la source
la source
J'ai besoin de la même fonctionnalité que celle décrite dans cette question. Voici ma solution et mon code source: https://github.com/laoyang/android-dynamic-views . Et vous pouvez voir la démo vidéo en action ici: http://www.youtube.com/watch?v=4HeqyG6FDhQ
Disposition
Fondamentalement, vous aurez deux fichiers de mise en page xml:
TextEdit
, unSpinner
et unImageButton
pour la suppression.Contrôle
Dans le code Java, vous allez ajouter et supprimer des vues de ligne dans le conteneur de manière dynamique, en utilisant inflate, addView, removeView, etc. Il existe un contrôle de visibilité pour une meilleure UX dans l'application Android stock. Vous devez ajouter un TextWatcher pour la vue EditText dans chaque ligne: lorsque le texte est vide, vous devez masquer le bouton Ajouter un nouveau et le bouton Supprimer. Dans mon code, j'ai écrit une
void inflateEditRow(String)
fonction d'assistance pour toute la logique.Autres astuces
android:animateLayoutChanges="true"
en XML pour activer l'animationCode source
Le code Java de l'activité principale (cela explique toute la logique, mais de nombreuses propriétés sont définies dans des fichiers de mise en page xml, veuillez vous référer à la source Github pour une solution complète):
la source
Voici ma façon générale:
la source
Salut Vous pouvez essayer de cette façon en ajoutant une mise en page relative et en ajoutant textview à cela.
la source
La classe ViewGroup fournit une API pour la gestion des vues enfants au moment de l'exécution, permettant également d'ajouter / supprimer des vues.
Quelques autres liens sur le sujet:
Android, ajouter une nouvelle vue sans mise en page XML
Tutoriel de mise en page Android Runtime
http://developer.android.com/reference/android/view/View.html
http://developer.android.com/reference/android/widget/LinearLayout.html
la source
Utilisez simplement
myView.setVisibility(View.GONE);
pour le supprimer complètement. Mais si vous souhaitez réserver l'espace occupé à l'intérieur de son utilisation parentmyView.setVisibility(View.INVISIBLE);
la source
View.INVISIBLE
ne fait que masquer la vue. leOnClickListener
(s'il est défini) répondra toujours à l'utilisateur s'il touche la zone où la vue est présente (mais non visible). Donc, vous devriez idéalement supprimer égalementOnClickListeners
dans de tels casPour ajouter le bouton
Pour retirer le bouton
la source
Salut Écrivez d'abord la classe d'activité. La classe suivante a un nom de catégorie et un petit bouton d'ajout. Lorsque vous appuyez sur le bouton Ajouter (+), cela ajoute la nouvelle ligne qui contient un EditText et un ImageButton qui effectue la suppression de la ligne.
2. Écrivez le format xml comme indiqué ci-dessous.
la source
// Maintenant, ajoutez xml main
// ajoute maintenant le fichier xml de vue.
la source
Solution d'extension Kotlin
Ajouter
removeSelf
pour appeler directement une vue. S'il est attaché à un parent, il sera supprimé. Cela rend votre code plus déclaratif et donc lisible.Voici 3 options pour ajouter par programme une vue à un fichier
ViewGroup
.la source