2

给定一个非空 ViewGroup 对象v,我们可以说它v.getChildAt(0)永远不会返回空吗?

如果它可以返回 null,那么该视图层次结构会是什么样子?

4

3 回答 3

7

是的,根据文档,它说它返回:

指定位置的视图;如果组中不存在该位置,则返回 null

于 2012-11-13T22:57:34.667 回答
0

是的,它可以返回 null。

我认为您真正的问题是这是否会发生以及发生时意味着什么。这意味着视图组没有任何孩子。为什么视图组可能没有孩子?我不知道。也许视图层次结构在您尝试获取对第一个孩子的引用之前已更改。

于 2012-11-13T23:24:40.450 回答
0

如果你有类似的东西

<ListView
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</ListView>

在您的布局中,然后执行

ListView v = (ListView) findViewById(R.id.listview);
View view = v.getChildAt(0);
// view is null

你有一个ViewGroup对象vwhere v.getChildAt(0)is null。因为ListView在你给它数据显示之前不会有任何孩子。

此外,您可以LinearLayout为动态内容创建一个空白作为占位符或框架。

如果它没有明确声明它不能返回 null,那么你最好期待一下,否则墨菲定律会打击你。

于 2012-11-13T23:42:00.620 回答