¿Cómo agrego y elimino vistas como TextView
s de la aplicación de Android como en la pantalla original de contactos de Android donde presionas un pequeño ícono en el lado derecho de un campo y agrega o elimina un campo que consiste en ay TextView
un editTextView
(de qué Puedo ver).
¿Algún ejemplo sobre cómo lograr esto?
android
android-view
Jonathan
fuente
fuente
Necesito exactamente la misma característica descrita en esta pregunta. Aquí está mi solución y código fuente: https://github.com/laoyang/android-dynamic-views . Y puede ver la demostración de video en acción aquí: http://www.youtube.com/watch?v=4HeqyG6FDhQ
Diseño
Básicamente tendrás dos archivos de diseño xml:
TextEdit
, unaSpinner
y unaImageButton
para su eliminación.Controlar
En el código Java, agregará y eliminará vistas de fila en el contenedor dinámicamente, utilizando inflar, agregarVista, eliminarVista, etc. Hay algunos controles de visibilidad para una mejor experiencia de usuario en la aplicación de Android. Debe agregar un TextWatcher para la vista EditText en cada fila: cuando el texto está vacío, debe ocultar el botón Agregar nuevo y el botón Eliminar. En mi código, escribí una
void inflateEditRow(String)
función auxiliar para toda la lógica.Otros trucos
android:animateLayoutChanges="true"
en xml para habilitar la animaciónCódigo fuente
El código de Java de la actividad principal (esto explica toda la lógica, pero se establecen bastantes propiedades en los archivos de diseño xml, consulte la fuente de Github para obtener una solución completa):
fuente
Esta es mi forma general:
fuente
Hola. Puede intentarlo de esta manera agregando un diseño relativo y luego agregando una vista de texto.
fuente
La clase ViewGroup proporciona API para la administración de vistas secundarias en tiempo de ejecución, permitiendo también agregar / eliminar vistas.
Algunos otros enlaces sobre el tema:
Android, agregue una nueva vista sin diseño XML
Tutorial de diseño de Android Runtime
http://developer.android.com/reference/android/view/View.html
http://developer.android.com/reference/android/widget/LinearLayout.html
fuente
Solo use
myView.setVisibility(View.GONE);
para eliminarlo por completo. Pero si desea reservar el espacio ocupado dentro de su uso principalmyView.setVisibility(View.INVISIBLE);
fuente
View.INVISIBLE
solo oculta la vista. ElOnClickListener
(si está configurado) seguirá respondiendo al usuario si toca el área donde está presente la vista (pero no visible). Entonces, idealmente, también debería eliminarOnClickListeners
en tales casosPara agregar el botón
Para quitar el botón
fuente
Hola Primero escriba la clase de actividad. La siguiente clase tiene un Nombre de categoría y un pequeño botón para agregar. Cuando presiona el botón Agregar (+), agrega la nueva fila que contiene un EditText y un ImageButton que realiza la eliminación de la fila.
2. Escriba el diseño xml como se indica a continuación.
fuente
// Ahora agregue xml main
// ahora agregue el archivo xml de vista ..
fuente
Solución de extensión Kotlin
Agregar
removeSelf
para llamar directamente a una vista. Si se adjunta a un padre, se eliminará. Esto hace que su código sea más declarativo y, por lo tanto, legible.Aquí hay 3 opciones sobre cómo agregar programáticamente una vista a un
ViewGroup
.fuente