我有一个自定义视图,扩展了RelativeLayout,其中我有一个viewpager,非常像this card。
问题:当我第一次将视图添加到布局中时,一切都很好,但是当我离开当前片段并返回它时,FragmentPagerAdapter上没有任何片段。调用所有方法,但片段不会膨胀
自定义视图和适配器:
SectionsPagerAdapter adapter = new SectionsPagerAdapter(((MainActivity)context).getSupportFragmentManager());
viewPager.setAdapter(adapter);
viewPager.setOffscreenPageLimit(5);
tabLayout.setupWithViewPager(viewPager);
-
public class SectionsPagerAdapter extends FragmentPagerAdapter {
SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return Fragment_HourlyPage.newInstance();
case 1:
return Fragment_HourlyPage.newInstance();
case 2:
return Fragment_HourlyPage.newInstance();
case 3:
return Fragment_HourlyPage.newInstance();
case 4:
return Fragment_HourlyPage.newInstance();
}
return null;
}
@Override
public int getCount() {
return 5;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "10AM - 11AM";
case 1:
return "11AM - 12AM";
case 2:
return "12AM - 1PM";
case 3:
return "1PM - 2PM";
case 4:
return "2PM - 3PM";
}
return null;
}
}
将自定义视图添加到布局中:
//inside AsyncTask
CardActivityMonitoring card = new CardActivityMonitoring(getActivity());
container.addView(card);
更改屏幕片段:
public void openDashboard() {
Fragment_Tabs main = new Fragment_Tabs();
fm.beginTransaction()
.replace(R.id.mainContainer, main)
.addToBackStack(null)
.commit();
}
//I'm switching between these
public void openSettings() {
Fragment_Settings frag = new Fragment_Settings();
fm.beginTransaction()
.replace(R.id.mainContainer, frag)
.addToBackStack(null)
.commit();
}
使用FragmentStatePageAdapter替换FragmentPagerAdapter可以解决此问题,但由于某种原因,加载视图需要2秒钟。
我尝试使用片段而不是自定义视图,但同样的问题。