关于PagerAdapter的方法instantiateItem(ViewGroup容器,int位置)的一些混淆

Hex*_*xor 13 android adapter android-pageradapter

public Object instantiateItem(ViewGroup container, int position) {
      ImageView view = new ImageView();
      container.addView(view);
      return view;
}
Run Code Online (Sandbox Code Playgroud)

我读了一些PagerAdapter的示例代码,他们都编写了addview方法.以上是一些简单的代码,而且我知道'return view'用于返回显示的视图,但是container.addView(view)是什么呢?

ada*_*amp 21

将视图添加到容器实际上是使其显示在屏幕上的原因.返回的对象instantiateItem只是一个键/标识符; 事实上,如果您没有使用像Fragment管理页面视图那样的东西,那么为此目的使用实际视图会很方便.(有关FragmentPagerAdapter示例,请参阅源代码.)

PagerAdapter方法isViewFromObject可帮助寻呼机知道哪个视图属于哪个键.如果您只是将视图作为关键对象返回,则可以将此方法简单地实现为:

public boolean isViewFromObject(View view, Object object) {
    return view == object;
}
Run Code Online (Sandbox Code Playgroud)

  • 它是ViewPager使用的标识. (4认同)