歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android ViewPager動態加載問題

今天做項目時,糾結了很久,動態添加view,剛開始按照其他的adapter處理,但是不會刷新view,來回翻幾頁,還會view覆蓋,最後手動調用adapter的destroyItem和instantiateItem方法,還是不行,最後重寫notifyDataSetChanged中removeAllViews和instantiateItem,有點效果,可是還是不理想。最後查詢資料要重寫PagerAdapter的方法

如下:

  1. public int getItemPosition(Object object) {  
  2.             return POSITION_NONE;  
  3.         }  

然後刷新數據的時候先removeAllViews,然後重新設置數據,最後notifyDataSetChanged,就成了。

但是在重新加載數據的時候notifyDataSetChanged之後會調用destroyItem,這個時候就會出問題,destroyItem記錄的views的索引是大於0的,但是重新加載的views的count為1的時候,這是removeView的時候會出現數組越界錯誤,處理方法就是

  1. @Override  
  2.         public void destroyItem(View arg0, int arg1, Object arg2) {  
  3.             if (getCount() > 1) {  
  4.                 ((GridViewPager) arg0).removeView(((GridViewPager) arg0)  
  5.                         .getViewList().get(arg1));  
  6.             }  
  7.         }  

做完了,很郁悶,到底是第三方那個的控件,還沒有完善,不想其他的Adapter那麼好。通過此文章記錄這次的郁悶之旅。

 

Copyright © Linux教程網 All Rights Reserved