public Object instantiateItem(ViewGroup container, int position) {
ImageView view = new ImageView();
container.addView(view);
return view;
}
我读了一些PagerAdapter的示例代码,他们都编写了addview方法。以上是一些简单的代码,我知道'返回视图'用于返回显示视图,但是什么是 container.addView(视图) 办?
答案 0 :(得分:21)
将视图添加到容器实际上是使其显示在屏幕上的原因。 instantiateItem
返回的对象只是一个键/标识符;事实上,如果您没有使用类似Fragment
之类的东西来管理页面视图,那么为此目的使用实际视图会很方便。 (有关示例,请参阅FragmentPagerAdapter
的来源。)
PagerAdapter方法isViewFromObject
帮助寻呼机知道哪个视图属于哪个键。如果您只是将视图作为关键对象返回,则可以将此方法简单地实现为:
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
答案 1 :(得分:1)
根据评论包含在PageAdapter的源代码中
public abstract Object instantiateItem(View container, int position);
创建给定位置的页面。适配器负责 用于将视图添加到此处给出的容器中,尽管它只是 必须确保在从
返回时完成此操作容器包含该视图的视图。
位置要实例化的页面位置。
返回表示新页面的对象。这不需要 是一个视图,但可以是页面的其他容器。