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