Hy, I am new to Android developing apps and i want to make an application using a view Pager with tabLayout.I also have a fragment that contains a list and I want to create this fragment on every page but with different data, depending on the tab selected. I almost achieved this but I've got a problem on viewPager page create. My ViewPagerAdapter extemds FragmentStatePagerAdapter and it looks like this:
public class ViewPagerAdapter extends FragmentStatePagerAdapter{
static final int NUM_ITEMS = 7;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Log.e("new instance",position+"");
Fragment fragment=null;
switch (position)
{
case 0: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 1: fragment= new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 2: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 3: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 4: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 5: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
case 6: fragment=new ChannelListFragment();
Log.e("new instance ",position+"");
break;
}
return fragment;
}
@Override
public int getCount() {
return NUM_ITEMS;
}
}
In my MainActivity I am doing this:
viewPager = (ViewPager) findViewById(R.id.pager);
final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
the problem is on swiping the pages: when activity first creates, on logs I saw that creates position 0 and position 1 for the first page, after that it creates position 2 for second tab, position 3 for third tab, 4 ,5,6 for the sixth tab and for the last one doesn't do enything. On scroll back is creating 4,3,2,1,0 and nothing for the first fragment. This affects the functionality of the app when setting the data depending on the selected tab. Can you help me please to fix it so that the pager to create one fragment on a page including item 0 and item six, the last one?