Мне удалось реализовать это answer. Использование только одного XML для viewpager, но я хочу реализовать его внутри фрагмента вместо Activity. Я попытался реализовать его во Фрагменте, но viewpager ничего не отображал.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>
Так в основном то, что я хочу для реализации единого XML-файла для всех представлений ViewPager, но внутри фрагмента. Его было всего несколько месяцев с тех пор, как я научился программировать для андроида, поэтому мне сложно провести время. Заранее спасибо.
Примечание: Если возможно не использовать вложенный фрагмент
Посмотри на это, http://stackoverflow.com/questions/7723964/ replace-fragment-inside-a-viewpager? rq = 1 –
Спасибо за быстрый ответ. Но возможно ли использовать другой фрагмент для просмотров/страницы? Как вы можете видеть в ссылке, которую вы предоставили, OP использует фрагменты в качестве своих представлений/страницы, хотя они были схожими, так что мы оба реализуем viewpager внутри фрагмента. – philip