@schwiz, como podemos redefinir o id de visão neste caso. Meu problema é mesmo depois que minha atividade termina, sempre que a próxima visão é adicionada, o id de visão é incrementado. Eu quero que o id de visão seja padronizado para 1 quando eu voltar para esta atividade novamente .
AndroidNewBee
Muito obrigado por dar esta resposta
hem
ViewGroup estende View implementa ViewParent, ViewManager. melhor chamá-lo com transmissão para (ViewGroup)
Mercury
23
Use ViewStub e especifique o layout da visualização que deseja alternar. Ver:
Se você quiser ocultar / mostrar você pode usar .setVisibility (View.INVISIBLE) e .setVisibility (View.VISIBLE). Quando a visualização está invisível, o usuário não pode interagir com ela.
dennisschagt
Digamos que eu tenha um textView com um onClickListener anexado a ele. Se eu fizer com que ele desapareça e tocar nele, o evento ainda será disparado?
ahitt6345
22
Este é o melhor jeito
LinearLayout lp =newLinearLayout(this);
lp.addView(newButton(this));
lp.addView(newImageButton(this));// Now remove them
lp.removeViewAt(0);// and so on
Se você tiver um layout xml, não há necessidade de adicionar dinamicamente. Apenas chamar
Qual será a diferença em termos de desempenho? Quero dizer, a diferença de desempenho de adicioná-los dinamicamente ou colocá-los em um arquivo de layout xml estático e deixá-lo ser inflado?
stdout de
19
Para adicionar visualização a um layout, você pode usar o addViewmétodo da ViewGroupclasse. Por exemplo,
Isso resolveu meu problema, mais do que qualquer outra resposta. Útil se, como eu, o seu fundo ou alguns parâmetros impedem que a vista desapareça totalmente.
Virthuss,
1
é porque View.GONE não remove a visualização do layout, apenas a torna invisível e não ocupa nenhum espaço para fins de layout.
Victor
6
Grande resposta de Sameer e Abel Terefe. No entanto, quando você remove uma visão, na minha opção, você deseja remover uma visão com determinado id. Aqui está como você faz isso.
oi se você é novo no Android, use desta forma Aplique sua visão para fazê-lo desaparecer É uma maneira, caso contrário, pegue a visão pai e remova o filho de lá ... senão pegue o layout pai e use isso método e remove todos os filhos parentView.remove (child)
Respostas:
Eu fiz assim:
fonte
(ViewGroup)
:)Use ViewStub e especifique o layout da visualização que deseja alternar. Ver:
Para desaparecer:
fonte
Este é o melhor jeito
Se você tiver um layout xml, não há necessidade de adicionar dinamicamente. Apenas chamar
fonte
Para adicionar visualização a um layout, você pode usar o
addView
método daViewGroup
classe. Por exemplo,Existem também vários métodos de remoção. Verifique a documentação do ViewGroup . Uma maneira simples de remover a visualização de um layout pode ser,
fonte
Para alterar a visibilidade:
Para remover:
fonte
Grande resposta de Sameer e Abel Terefe. No entanto, quando você remove uma visão, na minha opção, você deseja remover uma visão com determinado id. Aqui está como você faz isso.
1, forneça um id à visualização ao criá-la:
2, remova a visualização com o id:
fonte
você pode usar addView ou removeView
Java:
kotlin:
fonte
oi se você é novo no Android, use desta forma Aplique sua visão para fazê-lo desaparecer É uma maneira, caso contrário, pegue a visão pai e remova o filho de lá ... senão pegue o layout pai e use isso método e remove todos os filhos parentView.remove (child)
Eu sugeriria usar a abordagem GONE ...
fonte
Estou removendo a visualização usando o método de início e contagem, adicionei 3 visualizações no Layout linear.
view.removeViews (0, 3);
fonte
Solução de extensão reutilizável Kotlin
Remoção simplificada
Adicione esta extensão:
Simplifique a adição
Aqui estão algumas opções:
fonte