3 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
TA贡献1811条经验 获得超5个赞
有几种方法可以实现这一点。
第一种选择比较容易,但效率更低。
覆盖getItemPosition
在你的PagerAdapter
就像这样:
public int getItemPosition(Object object) { return POSITION_NONE;}
这样,当你打电话的时候notifyDataSetChanged()
,视图寻呼机将删除所有视图并重新加载它们。这样就得到了再加载效应。
第二种选择,阿尔瓦罗·路易斯·布斯塔曼特(以前为阿尔瓦罗),是为了setTag()
方法instantiateItem()
实例化新视图时。然后,而不是使用notifyDataSetChanged()
,你可以用findViewWithTag()
若要找到要更新的视图,请执行以下操作。
第二种方法非常灵活和高性能。对阿尔瓦罗布的最初研究表示赞许。
![?](http://img1.sycdn.imooc.com/533e4d00000171e602000200-100-100.jpg)
TA贡献1816条经验 获得超4个赞
PagerAdapter
PagerAdapter
ViewPager
notifyDataSetChanged()
PagerAdapter
ViewPager
ViewPager
ViewPager
getItemPosition()
getCount()
ViewPager
notifyDataSetChanged()
getItemPosition()
POSITION_NONE
ViewPager
destroyItem()
getItemPosition()
POSITION_NONE
notifyDatasetChanged()
TextView
setTag()
instantiateItem()
findViewWithTag()
ViewPager
TextView
TextView
![?](http://img1.sycdn.imooc.com/545861e40001199702200220-100-100.jpg)
TA贡献1845条经验 获得超8个赞
FragmentPagerAdapter
FragmentStatePagerAdapter
.
getItemPosition()
POSITION_NONE
.
notifyDataSetChanged()
- 3 回答
- 0 关注
- 908 浏览
添加回答
举报