我basicall有一个AsyncTask
(从主Activity
运行),填充片段内的ViewPager
。我正在膨胀xml布局文件以填充ViewPager
。
问题是我无法获得指向布局(imageview,textview)内部视图的指针,以便我可以在运行时更改。我知道这可能是因为getView()
返回null
。我读过这可能是因为onCreateView()
尚未被调用。有人知道我能做些什么来解决这个问题吗?
我的代码现在有点混乱。
以下是对我正在做的事情的简单解释:
如果我只是创建TextView,设置文本以及将TextView添加到Viewpager,它可以正常工作。但是,当然,我想让它看起来更好,所以我已经膨胀了一个xml布局。问题是我无法更改xml布局的内容,因为getView()
正在返回NULL
,因此getView().findViewById()
不起作用。
答案 0 :(得分:7)
根据您的PagerAdapter的实现情况,不再可见的片段可能会销毁View
以释放资源。因此,无需更新View
,因为它将在onCreateView()
中使用更新的信息再次创建。 getView()
会在对onCreateView()
和onDestroyView()
的调用之间返回一个视图。除此之外,Fragment
仍然可以存在于内存中,但不会附加到任何View
,因此getView()
将返回null
。
基本上,
View fragmentView = getView();
if(fragmentView != null) {
// we are in view or at least exist. Update the elements.
}
// Else don't worry about it. Just update the data.