Como adiciono e removo visualizações como TextView
s do aplicativo Android, como na tela de contatos original do Android, onde você pressiona um pequeno ícone no lado direito de um campo e adiciona ou exclui um campo que consiste em a TextView
e a editTextView
(pelo que Eu consigo ver).
Algum exemplo de como conseguir isso?
android
android-view
Jonathan
fonte
fonte
Preciso exatamente do mesmo recurso descrito nesta pergunta. Aqui está minha solução e código fonte: https://github.com/laoyang/android-dynamic-views . E você pode ver a demonstração em vídeo em ação aqui: http://www.youtube.com/watch?v=4HeqyG6FDhQ
Layout
Basicamente, você encontrará dois arquivos de layout xml:
TextEdit
, aSpinner
e anImageButton
para exclusão.Ao controle
No código Java, você adiciona e remove visualizações de linha no contêiner dinamicamente, usando inflate, addView, removeView, etc. Há algum controle de visibilidade para melhor UX no aplicativo Android padrão. Você precisa adicionar um TextWatcher para a visualização EditText em cada linha: quando o texto estiver vazio, oculte o botão Adicionar novo e o botão Excluir. No meu código, escrevi uma
void inflateEditRow(String)
função auxiliar para toda a lógica.Outros truques
android:animateLayoutChanges="true"
em xml para ativar a animaçãoCódigo fonte
O código Java da atividade principal (Isso explica toda a lógica, mas algumas propriedades são definidas nos arquivos de layout xml, consulte a fonte do Github para obter a solução completa):
fonte
Esta é a minha maneira geral:
fonte
Oi Você pode tentar dessa maneira adicionando um layout relativo e depois adicionando uma visualização de texto.
fonte
A classe ViewGroup fornece API para gerenciamento de visualizações filho em tempo de execução, permitindo adicionar / remover visualizações também.
Alguns outros links sobre o assunto:
Android, adicione nova visualização sem o layout XML
Tutorial de layout de tempo de execução do Android
http://developer.android.com/reference/android/view/View.html
http://developer.android.com/reference/android/widget/LinearLayout.html
fonte
Basta usar
myView.setVisibility(View.GONE);
para removê-lo completamente. Mas se você deseja reservar o espaço ocupado dentro de seu uso paimyView.setVisibility(View.INVISIBLE);
fonte
View.INVISIBLE
apenas oculta a vista. OOnClickListener
(se definido) ainda responderá ao usuário se ele tocar na área em que a visualização está presente (mas não visível). Então você deve, idealmente, também removerOnClickListeners
em tais casosPara adicionar o botão
Para remover o botão
fonte
Oi Primeiro, escreva a classe Activity. A classe a seguir possui um Nome da categoria e um pequeno botão de adição. Quando você pressiona o botão Adicionar (+), ele adiciona a nova linha que contém um EditText e um ImageButton que executa a exclusão da linha.
2. Escreva o xml Layout, conforme indicado abaixo.
fonte
// Agora adicione xml main
// agora adicione o arquivo xml de visualização ..
fonte
Solução de extensão Kotlin
Adicione
removeSelf
para chamar diretamente em uma exibição. Se anexado a um pai, ele será removido. Isso torna seu código mais declarativo e, portanto, legível.Aqui estão três opções para adicionar programaticamente uma exibição a
ViewGroup
.fonte