给定一个非空 ViewGroup 对象v
,我们可以说它v.getChildAt(0)
永远不会返回空吗?
如果它可以返回 null,那么该视图层次结构会是什么样子?
给定一个非空 ViewGroup 对象v
,我们可以说它v.getChildAt(0)
永远不会返回空吗?
如果它可以返回 null,那么该视图层次结构会是什么样子?
是的,根据文档,它说它返回:
指定位置的视图;如果组中不存在该位置,则返回 null
是的,它可以返回 null。
我认为您真正的问题是这是否会发生以及发生时意味着什么。这意味着视图组没有任何孩子。为什么视图组可能没有孩子?我不知道。也许视图层次结构在您尝试获取对第一个孩子的引用之前已更改。
如果你有类似的东西
<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
where v.getChildAt(0)
is null
。因为ListView
在你给它数据显示之前不会有任何孩子。
此外,您可以LinearLayout
为动态内容创建一个空白作为占位符或框架。
如果它没有明确声明它不能返回 null,那么你最好期待一下,否则墨菲定律会打击你。