2012-06-06 2 views
12
public Object instantiateItem(ViewGroup container, int position) { 
     ImageView view = new ImageView(); 
     container.addView(view); 
     return view; 
} 

Я прочитал некоторый пример кода PagerAdapter, и все они пишут метод addview. Это выше простой код. И я знаю, что «return view» используется для возврата представления для отображения. Но что такое container.addView (view) do?Некоторая путаница в методе instantiateItem (контейнер ViewGroup, int position) PagerAdapter

ответ

19

Добавление представления в контейнер на самом деле означает, что оно появляется на экране. Объект, возвращаемый instantiateItem, является просто ключом/идентификатором; так бывает, что использование фактического представления для этой цели имеет тенденцию быть удобным, если вы не используете что-то вроде Fragment для управления просмотром страницы. (См. Источник для FragmentPagerAdapter для примера.)

Метод PagerAdapter isViewFromObject помогает пейджеру знать, какой вид принадлежит ключу. Если вы только что вернулся вид, как ключевой объект, вы можете реализовать этот метод тривиальным, как:

public boolean isViewFromObject(View view, Object object) { 
    return view == object; 
} 
+0

если «Добавление представления в контейнер на самом деле является тем, что заставляет его отображаться на экране.», Что такое «возврат»? Спасибо за ответ. – Hexor

+4

Это тождество для использования ViewPager. – hackbod

+0

Этот ответ и комментарий @hackbod ответили мне на так много открытых вопросов о ViewPager! Благодаря (: –

1

Согласно комментариям включают в исходном коде PageAdapter

public abstract Object instantiateItem(View container, int position);  

Создать страницу для данной позиции. Адаптер отвечает для добавления вид контейнера Приводимые здесь, хотя только должен обеспечить это сделано к тому времени он возвращается из

Контейнер Содержащий View, в котором будет показана страница.

Позиция Позиция, подлежащая созданию.

Возвращает объект, представляющий новые page.This не нужно быть вид, но может быть какой-либо другой контейнер страницы.

Смежные вопросы