因此,当涉及到片段类中的 getVIew() 方法时,我遇到了一些奇怪的行为。从文档中,我期望得到在 onCreateView 方法中创建的视图,如此处所述http://developer.android.com/reference/android/app/Fragment.html#getView()
“获取片段布局的根视图(由 onCreateView(LayoutInflater, ViewGroup, Bundle) 返回的那个),如果提供的话”
现在,我有一个视图,其中包含相当数量的孩子,所以我想在尝试和“findViewById”时尝试保存,方法是实现一个类似于在 ListView 适配器中完成的常见方式的 ViewHolder 类,我设置为从 onCreateView 返回的视图的标记。
当我调用 getView 方法时,稍后会出现奇怪的行为。看起来片段正在返回我创建的视图的父级,而不是我创建的视图,这会导致返回一个空标记。
我写了一小笔代码来打印出一个视图(如果视图实际上是一个视图组,则嵌套子级),这就是我得到的。
android.widget.ScrollView android.widget.ScrollView@4242dec0
/android.widget.ScrollView
当我稍后使用 getView() 方法打印它时,我得到
android.support.v4.app.NoSaveStateFrameLayout
android.widget.ScrollView android.widget.ScrollView@4242dec0
/android.widget.ScrollView
/android.support.v4.app.NoSaveStateFrameLayout
如您所见,ScrollView 是我在 onCreateView 方法中实际创建的视图。那么为什么 getView 返回父视图而不是视图呢?