Come rimuovere tutte le viste figlio da un widget? Ad esempio, ho un GridView e io gonfio dinamicamente molti altri LinearLayouts in esso; più avanti nella mia applicazione sto cercando di iniziare con GridView e cancellare tutte le sue viste secondarie. Come lo farei? TIA.Rimozione di tutte le viste figlio dalla vista
74
A
risposta
143
viewGroup.removeAllViews()
funziona per qualsiasi gruppo di viste. nel tuo caso è GridView.
http://developer.android.com/reference/android/view/ViewGroup.html#removeAllViews()
11
È possibile rimuovere solo alcuni tipi di vista in un ViewGroup con questa funzione:
private void clearImageView(ViewGroup v) {
boolean doBreak = false;
while (!doBreak) {
int childCount = v.getChildCount();
int i;
for(i=0; i<childCount; i++) {
View currentChild = v.getChildAt(i);
// Change ImageView with your desired type view
if (currentChild instanceof ImageView) {
v.removeView(currentChild);
break;
}
}
if (i == childCount) {
doBreak = true;
}
}
}
+0
Abbassato perché l'OP non ha chiesto come rimuovere diversi tipi di viste secondarie. L'OP voleva rimuovere tutte le viste secondarie. – protectedmember
0
void removeAllChildViews(ViewGroup viewGroup) {
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View child = viewGroup.getChildAt(i);
if (child instanceof ViewGroup) {
if (child instanceof AdapterView) {
viewGroup.removeView(child);
return;
}
removeAllChildViews(((ViewGroup) child));
} else {
viewGroup.removeView(child);
}
}
}
0
Prova questa
RelativeLayout relativeLayout = findViewById(R.id.realtive_layout_root);
relativeLayout.removeAllViews();
Questo codice sta lavorando per me.
Problemi correlati
- 1. Imposta GestureDetector su tutte le viste figlio
- 2. xcode Rimozione di alcune sottoview dalla vista
- 3. come rendere una variabile vista in tutte le viste - rotaie
- 4. Come ottenere viste secondarie dalla vista composita di Backbone Marionette?
- 5. Rimozione di tutte le librerie OpenCV installati
- 6. Passaggio degli attributi alla vista figlio nelle viste composte
- 7. Vista rimozione iOS
- 8. L'invalidazione di una vista personalizzata causa l'annullamento di tutte le viste personalizzate in un gruppo di viste?
- 9. Enumerate/iterate tutte le viste nell'attività?
- 10. Eliminare tutte le viste da SQL Server
- 11. Come intercettare il rendering della vista per aggiungere HTML/JS su tutte le viste parziali?
- 12. Estrai tutte le finestre figlio della finestra
- 13. Arresta Android dal layout di tutte le mie viste
- 14. Dati disponibili per tutte le viste nel codeigniter
- 15. Come si elencano tutte le viste indicizzate in SQL Server?
- 16. come recuperare tutte le sezione della tabella viste visibili intestazione
- 17. viste di riciclaggio in vista di scorrimento
- 18. Rimuovi tutte le occorrenze di \ dalla stringa
- 19. Rimozione di tutte le istanze di oggetti di serie
- 20. jpa rimozione bambino dalla raccolta
- 21. funzioni isset() o! Empty() su tutte le variabili nelle viste?
- 22. Java: Rimozione di tutte le righe di DefaultTableModel
- 23. backbone, accedi alla vista genitore dalla visualizzazione figlio?
- 24. Posiziona UIView in cima a tutte le altre viste
- 25. Come ottenere l'elenco di tutte le viste materializzate in Oracle
- 26. Mostra tutte le viste sul database di Oracle
- 27. Possiamo ottenere tutte le viste di annotazione da MKMapView
- 28. Rimozione elementi figlio dati un indice?
- 29. jquery removeClass() non la rimozione di tutte le classi
- 30. Rimozione di nodi radice figlio in RABL
Grazie per l'aiuto! –
In realtà removeAllViews() genera un'eccezione quando viene chiamato su GridView. Da Documenti: "Questo metodo non è supportato e genera un UnsupportedOperationException quando viene chiamato." – Moritz
Questo commento si applica alla classe base astratta da cui è derivato ViewGroup. ViewGroup stesso e tutte le sue classi derivate supportano removeAllViews. –