Je cherche à trouver toutes les vues dans une activité spécifiée qui ont la balise "ballon" par exemple, puis les cacher en utilisant setVisibility
à GONE
.
Quelqu'un sait-il comment récupérer une liste de vues avec une balise donnée ?
Je cherche à trouver toutes les vues dans une activité spécifiée qui ont la balise "ballon" par exemple, puis les cacher en utilisant setVisibility
à GONE
.
Quelqu'un sait-il comment récupérer une liste de vues avec une balise donnée ?
Voilà :
private static ArrayList<View> getViewsByTag(ViewGroup root, String tag){
ArrayList<View> views = new ArrayList<View>();
final int childCount = root.getChildCount();
for (int i = 0; i < childCount; i++) {
final View child = root.getChildAt(i);
if (child instanceof ViewGroup) {
views.addAll(getViewsByTag((ViewGroup) child, tag));
}
final Object tagObj = child.getTag();
if (tagObj != null && tagObj.equals(tag)) {
views.add(child);
}
}
return views;
}
J'ai déjà répondu ici :Android - comment trouver plusieurs vues avec attribut commun
Vous pouvez définir des balises pour vos vues de cette manière :
someView.setContentDescription("MyTag");
Et puis pour trouver toutes les vues avec cette balise, vous devez appeler :
ArrayList<View> outputViews = new ArrayList<>();
rootView.findViewsWithText(outputViews, "MyTag", FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
Cette API peut-elle appeler View# findViewWithTag pour vous aider ? Veuillez noter qu'il ne renvoie qu'une seule vue...
Recherchez une vue enfant avec la balise donnée. Si cette vue a la balise donnée, retourner cette vue.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.