Фрагмент не отображается после перехода из другого фрагмента / действия
Я использую FragmentPagerAdapter и ViewPager, чтобы показать два фрагмента. Первый раз при открытии фрагмента оба показывают / работают нормально. Когда я иду к другому занятию или иду к другому фрагменту за пределами этих 2 и возвращаюсь, ничего не появляется. Вот код
Событие:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Events extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.event, container, false);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) rootView.findViewById(R.id.pager);
FragmentManager fm = getFragmentManager();
viewPager.setAdapter(new MyFragmentPageAdapter(fm));
// Give the SlidingTabLayout the ViewPager
SlidingTabLayout slidingTabLayout = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
// Center the tabs in the layout
slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
@Override
public int getIndicatorColor(int position) {
return getResources().getColor(R.color.ColorSecondary);
}
});
slidingTabLayout.setDistributeEvenly(true);
slidingTabLayout.setViewPager(viewPager);
return rootView;
}
}
MYFramentAdapter.class:
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyFragmentPageAdapter extends FragmentPagerAdapter{
final int PAGE_COUNT = 2;
private String tabTitles[] = new String[] { "Upcoming", "Calendar" };
private Context context;
public MyFragmentPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public Fragment getItem(int pos) {
switch(pos) {
case 0: return FragmentEvents.newInstance(0);
case 1: return FragmentCalendar.newInstance(1);
default: return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
}
1 ответ
Постановили:
Мне пришлось использовать getChildFragmentManager() во ViewPager из-за вложенных фрагментов.