getChildAt(0)会返回null吗?

时间:2012-11-13 22:54:09

标签: android android-layout

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

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

3 个答案:

答案 0 :(得分:7)

是的,根据文档,它返回it says

  

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

答案 1 :(得分:0)

是的,它可以返回null。

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

答案 2 :(得分: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对象v,其中v.getChildAt(0)null。因为ListView在您将数据显示之前不会有任何子项。

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

如果它没有明确说明它不能返回null,你最好还是期望或墨菲定律会打击你。