Подтвердить что ты не робот

Найти все виды с тегом?

Я ищу, чтобы найти все виды в указанной деятельности, которые имеют тег "balloon", а затем спрятать их с помощью setVisibility до GONE.

Кто-нибудь знает, как получить список представлений с заданным тегом?

4b9b3361

Ответ 1

Здесь вы идете:

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;
}

Я уже ответил на это здесь: Android - как найти несколько просмотров с общим атрибутом

Ответ 2

Один из подходов состоял бы в том, чтобы начать с родительской ViewGroup, перебрать ее дочерние элементы (и их дочерние элементы и т.д.), а затем проверить теги на каждом из них.

Ответ 3

Может ли этот API вызвать Просмотреть # findViewWithTag помощь? Обратите внимание, что он возвращает только один вид...

Найдите детское представление с данным тегом. Если это мнение имеет тег, верните это представление.

Ответ 4

Вы можете установить теги на свои представления следующим образом:

someView.setContentDescription("MyTag");

И затем, чтобы найти все представления с этим тегом, вам нужно позвонить:

ArrayList<View> outputViews = new ArrayList<>();
rootView.findViewsWithText(outputViews, "MyTag", FIND_VIEWS_WITH_CONTENT_DESCRIPTION);