Witam!
poprzednie pytania udało się rozwiązać, lecz teraz powstał nowy problem.
mianowicie gdy przechodzę między fragmentami na jednym z fragmentów mam TabLayout
gdy do setAdapter dodam getFragmentManager() to aplikacja działa, lecz za 2 razem nie ładują się content tabów,
gdy zmienie getFragmentManager() na getChildFragmentManager() (tak wyczytałem jest poprawnie by naprawić problem z linijki wyżej) to aplikacja za 2 razem gdy wejdziemy na fragment crashuje się.
poniżej zamieszczam kod fragmentu z tabami:
public class TabEventsFragment extends Fragment
{
final public static String LOG_TAG = "TabEventsFragment";
public static TabEventsFragment newInstance( )
{
Bundle args = new Bundle();
TabEventsFragment fragment = new TabEventsFragment();
fragment.setArguments( args );
return fragment;
}
@Override
public void onCreate( Bundle savedInstanceState )
{
Log.i( MainActivity.LOG_TAG, LOG_TAG + " onCreate" );
super.onCreate( savedInstanceState );
// setHasOptionsMenu( true );
}
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState )
{
View view = inflater.inflate( R.layout.tab_events, container, false );
TabLayout tabLayout = (TabLayout) view.findViewById( R.id.events_tab );
tabLayout.addTab( tabLayout.newTab().setText( getResources().getString( R.string.today ) ) );
tabLayout.addTab( tabLayout.newTab().setText( getResources().getString( R.string.tomorrow ) ) );
tabLayout.addTab( tabLayout.newTab().setText( getResources().getString( R.string.future ) ) );
final ViewPager viewPager = (ViewPager) view.findViewById( R.id.events_viewpager );
// LivePagerAdapter adapter = new LivePagerAdapter( getFragmentManager(), tabLayout.getTabCount() );
LivePagerAdapter adapter = new LivePagerAdapter( getChildFragmentManager(), tabLayout.getTabCount() );
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 )
{
}
} );
return view;
}
public class LivePagerAdapter extends FragmentStatePagerAdapter
{
int mNumOfTabs;
public LivePagerAdapter( FragmentManager fm, int numOfTabs )
{
super( fm );
this.mNumOfTabs = numOfTabs;
}
@Override
public Fragment getItem( int position )
{
Fragment fragment = null;
switch ( position )
{
case 0:
fragment = EventsFragment.newInstance( EventsFragment.TODAY );
break;
case 1:
fragment = EventsFragment.newInstance( EventsFragment.TOMORROW );
break;
case 2:
fragment = EventsFragment.newInstance( EventsFragment.FUTURE );
break;
}
return fragment;
}
@Override
public int getCount()
{
return mNumOfTabs;
}
}
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
}
}
z góry dzięki za szybką pomoc.