最佳答案
(我想出了一个解决方案——请看我在下面回答部分的帖子。)
在我的应用程序中,用户将从他的数据的单个视图开始。我想添加一个 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);
谢谢。