【发布时间】:2013-04-22 22:28:17
【问题描述】:
我有使用 Fragments 的 ViewPager.. 片段现在只包含一个带有 ImageView 和大 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 + "");
}
所有片段获得的结果都不同.. 当我滑动图像时,textview 文本的显示方式也不同.. 我尝试将图像位图设置为空,然后使用新位图更新.. 但它不起作用..有什么线索我哪里出错了吗??
编辑:添加片段的 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" />
【问题讨论】:
-
我已经尝试了好几个小时...+1!在我的情况下,我可以通过在“详细信息”片段中静态声明 TextView 来在 ListFragment 的片段中的 TextView 上 setText,但 ImageView 的 setImageResource 不能以相同的方式静态更新,我得到一个 NPE ..同样的问题?
-
@whyoz 更改 imageView 运气好吗??
-
我很高兴你回复了......希望这对你有帮助,但我的问题是因为我有 android:tag="@+id/theImageID" 这一定是我复制和粘贴时发生的。 .你会注意到它应该是“id”而不是“tag”,这就是为什么我得到一个 NPE ..simple,但它通常是最简单的,因为它很容易被忽略......发布你的 XML这可能会有所帮助。
-
已经添加了 XML.. XML 对我来说看起来很不错.. 我没有得到任何 Null 指针.. 在 logcat 中没有警告/错误.. 如果我添加更多的文本视图,它们都是当我滑动图像时改变..只有图像保持不变..
标签: android android-fragments android-loadermanager