динамически добавлять и удалять вид в viewpager
(Я нашел решение - см. Мой пост в разделе Ответ ниже.)
В моем приложении пользователь начнет с одного просмотра своих данных. Я хотел бы добавить ViewPager и позволить пользователю добавлять больше представлений по желанию. Как мне это сделать? (Я не хочу использовать FragmentPagerAdapter.)
Я прочитал бесчисленные посты и обзоры, но все еще чего-то не хватает. Вот что, я думаю, я понимаю:
MainActivity создает ViewPager и PagerAdapter:
ViewPager pager = null;
MainPagerAdapter adapter = null;
public void onCreate (Bundle savedInstanceState)
{
super.onCreate (savedInstanceState);
pager = new ViewPager (this);
setContentView (pager);
adapter = new MainPagerAdapter();
pager.setAdapter (adapter);
View v0 = code_to_create_initial_view();
adapter.add (v0, 0);
}
Используйте PagerAdapter для предоставления наборов представлений. Для этого мне нужны методы для добавления и удаления представлений, что-то вроде этого; очевидно, нужно больше, чтобы сказать, что материал ViewPager изменился и как показать изменения:
class MainPagerAdapter extends PagerAdapter
{
// This holds all the currently displayable views, in order from left to right.
private ArrayList<View> views = new ArrayList<View>();
public void addView (View v, int position)
{
views.add (position, v);
}
public void removeView (int position)
{
views.remove (position);
}
}
Кроме того, мне нужно реализовать следующие жизненные методы. Я потерян здесь - что их вызывает и что они должны делать (хорошо, getCount очевиден)?
public object instantiateItem (ViewGroup pager, int position);
public void destroyItem (ViewGroup, int, Object);
public int getCount ();
public boolean isViewFromObject (View, Object);
Для чего нужны параметры ViewGroup - не содержит ли сама группа ViewPager?Что делает isViewFromObject - как объект связывается с представлением в первую очередь?Должен ли я вызывать startUpdate и finishUdate при добавлении или удалении представлений?Благодарю.