我的目标是在我的应用中实现一个Guide/How-To-Use-App Activity,用户可以在其中切换一组预定义的视图。所以,我决定使用ViewPager。
这就是我在我的GuideActivity
:
mPager = (ViewPager) findViewById(R.id.pager);
mAdapter = new GuideAdapter(getBaseContext());
mPager.setAdapter(mAdapter);
这是我的实现PagerAdapter
:
class GuideAdapter extends PagerAdapter {
private Context context;
protected static final int[] SLIDES = new int[] {
R.drawable.page1, R.drawable.page2, R.drawable.page3 };
public GuideAdapter(Context context) {
this.context = context;
}
@Override
public View instantiateItem(ViewGroup container, int position) {
ImageView image = new ImageView(container.getContext());
image.setImageResource(SLIDES[position]);
container.addView(image, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
return image;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
@Override
public int getCount() {
return SLIDES.length;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return true;
}
}
问题是,图像被绘制在彼此的顶部。如果我从左向右滚动,我看不到任何图像。如果我向后滚动,图像会显示一秒钟然后消失。底线:我的 ViewPager 行为出人意料!
我重写了. PagerAdapter
我不确定我做错了什么,但我认为它与instantiateItem()
和/或有关destroyItem()
。
有任何想法吗?