我设法实现了这个answer。仅使用单个XML进行viewpager,但我想要的是在片段内实现此而不是Activity。我尝试在Fragment中实现它,但是viewpager没有显示任何内容。
这是我的PagerAdapter:
class WizardPagerAdapter extends PagerAdapter {
public Object instantiateItem(ViewGroup collection, int position) {
Log.i("instantiateItem", "instantiateItem");
int resId = 0;
switch (position) {
case 0:
resId = R.id.llPageOne;
break;
case 1:
resId = R.id.llPageTwo;
break;
}
return collection.findViewById(resId); // I tried replacing this with pager.findViewById(resId)
}
@Override
public int getCount() {
return 2;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup parent, int position, Object object) {
View view = (View) object;
parent.removeView(view);
}
}
这就是我实现它的方式:
WizardPagerAdapter adapter = new WizardPagerAdapter();
pager = (ViewPager) view.findViewById(R.id.pager);
pager.setAdapter(adapter);
这是我的XML布局:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:id="@+id/llPageOne"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PAGE ONE IN" />
<EditText
android:id="@+id/etSample"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/etSample2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/llPageTwo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PAGE TWO IN" />
<EditText
android:id="@+id/etTwo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v4.view.ViewPager>
所以基本上我想要的是为ViewPager的所有视图实现一个XML文件,但是在Fragment中。自从我学会编写Android代码以来,仅仅几个月,我很难有时间让它工作。提前谢谢。
注意:如果可能,请不要使用嵌套片段