findViewWithTag()如何工作?

时间:2013-07-08 10:49:39

标签: android

我查看了android平台框架的源代码,并找到了它的实现here。这里是代码片段:

public final View findViewWithTag(Object tag) {
    if (tag == null) {
        return null;
    }
    return findViewWithTagTraversal(tag);
}

protected View findViewWithTagTraversal(Object tag) {
    if (tag != null && tag.equals(mTag)) {
        return this;
    }
    return null;
}

它似乎只是将给定标记与其自己的标记进行比较,然后返回自身或null。什么都没有遍历。那么如何使用标签查找任何子视图呢?

1 个答案:

答案 0 :(得分:2)

View基类没有孩子。它是ViewGroup可能有孩子,如果你看一下这些定义,你会发现它们更复杂。