2013-04-22 86 views
4

我有ViewPager,它使用片段..片段只包含一個framelayout與ImageView和大的TextView作爲標題現在..每個片段圖像獲取加載異步..片段視圖異步更新:ImageView不更新,但其他孩子在視圖中得到更新

我的問題是異步任務完成後,我可以看到圖像的標題與新的價值得到改變..但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的文本被不同地顯示的片段不同..我試圖設定圖像位圖,以空ND然後更新與新的位圖..但它不工作..任何線索,我要去哪裏錯?

編輯:添加片段

<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" /> 
+0

我一直在試圖算出這個幾個小時... + 1!在我的情況下,我可以通過在「Details」片段中靜態聲明TextView來從ListFragment的Fragment中的TextView上設置TextText,但ImageView的setImageResource不能以相同的方式靜態更新,並且我得到了NPE ..同樣的問題? – whyoz 2013-04-23 21:09:15

+0

@whyoz改變imageView的任何運氣? – Kamal 2013-04-25 17:51:07

+0

我很高興你的迴應...希望這可以幫助你,但我的問題是因爲我有android:tag =「@ + id/theImageID」,當我複製和粘貼時一定發生了..你會注意到它應該是「id」而不是「tag」,這就是爲什麼我得到一個NPE ..簡單,但它通常是最簡單的問題,因爲它很容易忽略...發佈您的XML,這可能會有所幫助。 – whyoz 2013-04-25 19:36:47

回答

1

的XML我也有同樣的問題,花了幾個小時尋找解決方案。希望可以幫助他人解決這個問題

我看到Fragment正在經歷onCreateView,我只在AsyncTask中看到片段時才加載圖像。我檢查了onPostExecute位圖設置爲ImageView,但徒勞無功。 ImageView只是第一次顯示圖像。即使invalidate()沒有幫助。

經過一番搜索,我發現FragmentPagerAdapter重新實例化片段。建議使用更大的數據:FragmentStatePagerAdapter。它使用更少的內存並破壞碎片。

在這裏閱讀更多: FragmentStatePagerAdapter