【发布时间】:2016-01-27 22:20:27
【问题描述】:
(对于上下文,)我正在尝试将 GridView 扩展为类似于 ListView 并具有页眉和页脚,但 findViewById 不起作用。当我查看 ListView 的源代码时,我发现:
@Override
protected View findViewTraversal(int id) {
View v;
v = super.findViewTraversal(id);
...
}
然而 Android Studio(和 Gradle)告诉我 findViewTraversal 不存在,即使它也存在于 ViewGroup's source 中,这意味着它应该在 GridView 中。
为什么我不能在我的子类中覆盖这个方法?
我是否遗漏了 Java 语言的某些部分,因为我认为受保护的方法可以通过继承获得? findViewTraversal() 也不存在于 Android 文档中,因此它显然不适合使用,但我不明白它是如何不能。
【问题讨论】:
-
我试图找出答案,但找不到明确的答案。您可能会找到帮助here 或 here (jls)
-
只是与您在此处实际尝试实现的目标相关的评论(“将 GridView 扩展为类似于 ListView 并具有页眉和页脚”):您是否搜索过现有的解决方案?我很确定有。或者,考虑使用
RecyclerView和GridLayoutManager- 这将允许您相当容易地添加页眉/页脚(通过使项目跨越多列)。