今天做項目時,糾結了很久,動態添加view,剛開始按照其他的adapter處理,但是不會刷新view,來回翻幾頁,還會view覆蓋,最后手動調用adapter的destroyItem和instantiateItem方法,還是不行,最后重寫notifyDataSetChanged中removeAllViews和instantiateItem,有點效果,可是還是不理想。最后查詢資料要重寫PagerAdapter的方法
如下:
public int getItemPosition(Object object) { return POSITION_NONE; } ,然后刷新數據的時候先removeAllViews,然后重新設置數據,最后notifyDataSetChanged,就成了。
但是在重新加載數據的時候notifyDataSetChanged之后會調用destroyItem,這個時候就會出問題,destroyItem記錄的views的索引是大于0的,但是重新加載的views的count為1的時候,這是removeView的時候會出現數組越界錯誤,處理方法就是
@Override public void destroyItem(View arg0, int arg1, Object arg2) { if (getCount() > 1) { ((GridViewPager) arg0).removeView(((GridViewPager) arg0) .getViewList().get(arg1)); } } 做完了,很郁悶,到底是第三方那個的控件,還沒有完善,不想其他的Adapter那么好。通過此文章記錄這次的郁悶之旅,呵呵。
以上所述是小編給大家介紹的Android ViewPager動態加載問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答