Android 片段视图异步更新:ImageView未更新,但视图中的其他子对象正在更新

Android 片段视图异步更新:ImageView未更新,但视图中的其他子对象正在更新,android,android-fragments,android-loadermanager,Android,Android Fragments,Android Loadermanager,我有一个使用片段的ViewPager。。片段现在只包含一个标题为ImageView和big TextView的框架布局。。正在异步加载每个片段映像 我的问题是,在异步任务完成后,我可以看到图像的标题被新值更改。。但ImageView仅显示第一次加载的图像 onCreateView方法 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedIn

我有一个使用片段的ViewPager。。片段现在只包含一个标题为ImageView和big TextView的框架布局。。正在异步加载每个片段映像

我的问题是,在异步任务完成后,我可以看到图像的标题被新值更改。。但ImageView仅显示第一次加载的图像

onCreateView方法

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // Inflate the layout containing a title and body text.
    ViewGroup rootView = (ViewGroup) inflater.inflate(
            R.layout.fragment_sliding, container, false);
    rootView.setId(imgId);
    return rootView;
}
当我的异步加载程序加载信息时

    @Override
public void onLoadFinished(Loader<DImage> arg0, DImage arg1) {
    View v = getView();

    ImageView im = (ImageView) v.findViewById(R.id.fragment_image);
    im.setImageBitmap(arg1.image);
    TextView tv = (TextView) v.findViewById(R.id.fragment_image_title);
    tv.setText(arg1.id + "");

}
@覆盖
公共void onLoadFinished(加载程序arg0、DImage arg1){
视图v=getView();
ImageView im=(ImageView)v.findViewById(R.id.fragment_image);
im.setImageBitmap(arg1.image);
TextView tv=(TextView)v.findViewById(R.id.fragment\u image\u title);
tv.setText(arg1.id+);
}
所有碎片的结果都不同。。当我滑动图像时,文本视图文本的显示方式也不同。。我尝试将图像位图设置为null nd,然后使用新位图进行更新。。但是它不起作用。。你知道我哪里出错了吗

编辑:添加片段的XML

    <ImageView
    android:id="@+id/fragment_image"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:keepScreenOn="true"

    />

<TextView
    android:id="@+id/fragment_image_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textSize="30dp" />

我也遇到了同样的问题,花了几个小时寻找解决方案。希望能帮助其他人解决这个问题

我看到
片段
正在通过
onCreateView
,我只在
异步任务
中看到片段时加载图像。我检查了
onPostExecute
位图是否设置为
ImageView
,但没有成功。
ImageView
仅第一次显示图像。甚至
invalidate()
也没有帮助

经过一些搜索,我发现
FragmentPagerAdapter
重新实例化了片段。对于较大的数据,建议使用:
FragmentStatePagerAdapter
。它使用更少的内存并销毁片段

请在此处阅读更多信息:

我几个小时来一直在想这个问题…+1!在我的例子中,我可以通过在“详细信息”片段中静态声明TextView,在ListFragment的片段中的TextView上设置Text,但是ImageView的setImageResource不能以相同的方式静态更新,我得到了一个NPE..同样的问题?@whyoz更改ImageView有什么好运气吗?我很高兴你回答了…希望这对你有所帮助,但我的问题是因为我有android:tag=“@+id/theImageID”,这一定是在我复制和粘贴时发生的..你会注意到它应该是“id”而不是“tag”,这就是我得到NPE的原因..很简单,但通常最容易引起问题的是简单,因为它很容易被忽略…发布XML,这可能会有所帮助。。XML在我看来很好。。我没有任何空指针。。logcat中没有警告/错误。。如果我再添加一些文本视图,当我滑动图像时,它们都会改变。。只有图像保持不变。。