【发布时间】:2016-12-22 12:28:02
【问题描述】:
我设法实现了这个answer。 viewpager 仅使用单个 XML,但我想要的是在片段而不是 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 编写代码以来只有几个月的时间,所以我很难让它工作。提前致谢。
注意:尽可能不要使用嵌套片段
【问题讨论】:
-
感谢您的快速回复。但是是否可以不对视图/页面使用另一个片段?正如您在提供的链接中所见,OP 使用片段作为其视图/页面,尽管我们都在片段内实现 viewpager 的方式相似。