歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android ViewPager動態加載問題

Android ViewPager動態加載問題

日期:2017/3/1 10:11:03   编辑:Linux編程

今天做項目時,糾結了很久,動態添加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