У меня есть один activity_main_layout с тремя линейными макетами внутри (layout1, layout2 и layout3). Из моей MainActivity я хочу отображать определенные макеты на buttonClicks. Как и при нажатии кнопки firstButton, отображается макет1, второй элемент отображает layout2 и thirdButton отображает layout3. Для этого я использую viewPager. Вот мой код ниже:Android ViewPager Layouts
private class ViewPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 3;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((View) object);
}
public Object instantiateItem(View collection, int position) {
int resId = -1;
switch (position) {
case 0:
resId = R.id.layout1;
Log.e(TAG, "layout1 called");
break;
case 1:
resId = R.id.layout2;
Log.e(TAG, "layout2 called");
break;
case 2:
resId = R.id.layout3;
Log.e(TAG, "layout3 called");
break;
}
return findViewById(resId);
}
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
}
Layout1 по-умолчанию, отображается на экране при запуске MainActivity.
Когда я вижу журнал, он отображает
03-11 14:34:22.776 23506-23506/com.myapp.app E/MainActivity﹕ layout1 called
03-11 14:34:22.777 23506-23506/com.myapp.app E/MainActivity﹕ layout2 called
А потом, когда я нажимаю secondButton журнал показывает layout3 называется
Любая идея по этому поводу? Я пытаюсь достичь as shown in this image
Это ожидаемое поведение, «ViewPager» предварительно загружает следующую страницу. –
Спасибо. проблема в том, когда я нажимаю кнопку ThirdButton, макет все пуст. http://i.stack.imgur.com/XbF8X.png – Megamind
Возможно, проблема в том, что вы неправильно наматываете свои макеты или вообще не надуваете их. Я бы посоветовал вам использовать 'ViewPager' +' Fragments' как элементы пейджера, например. реализации http://stackoverflow.com/questions/18413309/how-to-implement-a-viewpager-with-different-fragments-layouts –