Jua*_*ana 12 android android-pageradapter
我很好奇为什么instantiateItem
被弃用以支持它的新版本.变化是它现在接受ViewGroup
而不是更普遍View
.
不推荐的方法
public Object instantiateItem (View container, int position)
Run Code Online (Sandbox Code Playgroud)
新方法
public Object instantiateItem (ViewGroup container, int position)
Run Code Online (Sandbox Code Playgroud)
注意:这种变化也发生在destroyItem
,startUpdate
,finishUpdate
和setPrimaryItem
.
Sco*_*t W 12
我的猜测是它完成了,因为这些方法总是用一个ViewGroup
而不是更一般的方式来调用View
.因此,将参数提供为ViewGroup
便利,允许开发人员避免始终检查和转换输入.所以不要一遍又一遍地看到这些代码:
ViewGroup parent;
if (container instanceof ViewGroup) {
parent = (ViewGroup) container;
}
else {
throw new IllegalArgumentException("container must be a ViewGroup");
}
Run Code Online (Sandbox Code Playgroud)
实施者可以直接使用container
.
而且,实际上,您可以看到这正是Adam Powell提交消息中的原因:
错误5327146 - ViewPager API调整和文档
PagerAdapter以前将View实例作为其几个方法的参数,导致在适配器实现中大量转换为ViewGroup.
更改这些以采用ViewGroups.默认实现使用现有签名调用已弃用的存根,允许当前适配器保持未修改的工作状态.
归档时间: |
|
查看次数: |
7690 次 |
最近记录: |