0
首先我没有得到任何错误。我的问题是我在ViewPager中看不到页面(012)。让我来解释:Viewpager内存不足?
首先我直接添加里面的布置页面,而无需片段:
<android.support.v4.view.ViewPager
android:id="@+id/drawerPager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:id="@+id/page_start_one"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
//3 textviews, 1 imageview
</RelativeLayout>
<RelativeLayout
android:id="@+id/page_start_two"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
//1 textview, 1 imageview
</RelativeLayout>
<RelativeLayout
android:id="@+id/page_start_three"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
//1 textview, 1 imageview
</RelativeLayout>
<RelativeLayout
android:id="@+id/page_start_four"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
//3 textviews, 1 button
</RelativeLayout>
</android.support.v4.view.ViewPager>
我为简单起见这样做。现在我加载寻呼机适配器活动:
WizardPagerAdapter adapter = new WizardPagerAdapter();
ViewPager pager = (ViewPager) findViewById(R.id.drawerPager);
pager.setAdapter(adapter);
当然定义WizardPagerAdapter
。您将在下面看到,destroyItem()
什么都不做,instantiateItem()
只是返回与id找到的视图。这是我从this SO question基于代码:
class WizardPagerAdapter extends PagerAdapter {
public RelativeLayout instantiateItem(View collection, int position) {
System.out.println(position);
int resId = 0;
switch (position) {
case 0:
resId = R.id.page_start_one;
break;
case 1:
resId = R.id.page_start_two;
break;
case 2:
resId = R.id.page_start_three;
break;
case 3:
resId = R.id.page_start_four;
break;
}
return (RelativeLayout) findViewById(resId);
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
}
@Override
public int getCount() {
return 4;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
}
正如我以前说过,这个代码,我只能看到0 & 1页相当于RelativeLayouts但2页& 3总是空的。
- 你知道为什么会发生这种情况吗?
- 是否因为内存限制?
- 或者我的另一个假设是页面2 & 3从来没有被夸大,因为onCreate
instantiateItem()
只运行前两个。 (由System.out.println(position);
嗤之以鼻,打印0 & 1)。