Ich habe eine FragmentActivity, die 3 Fragmente in einem View Pager lädt. Bei jeder Neuinstallation wird das zweite Fragment geladen, aber bald nachdem es schwarz wird. Danach wird das zweite Fragment neu geladen und funktioniert auch dann, wenn Sie durch die Ansichten wischen. So wird es nur beim ersten Mal schwarz. Ich habe dies mit einem FragmentPagerAdapter und FragmentStatePagerAdapter implementiert, aber es verhält sich genauso. Dies geschieht nur für KitKat und Lollipop. Alle Fragmente haben einfache Layouts, keine verschachtelten Fragmente.Schwarzes Fragment beim ersten Laden in ViewPager
public class IntroActivity extends FragmentActivity {
private List<Fragment> listFragments;
private PagerAdapter pagerAdapterWelcome;
private OnboardingPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intro_pager);
viewPager = (OnboardingPager) findViewById(R.id.viewPager);
//Initializing the List
listFragments = new ArrayList<Fragment>();
//initializing the fragments
WelcomeFragment welcomeFragment = new WelcomeFragment();
TicketScanFragment ticketOptionScanFragment = new TicketScanFragment();
ScannerFragment scanFragment = new ScannerFragment();
//Adding Fragments to List
listFragments.add(welcomeFragment);
listFragments.add(ticketOptionScanFragment);
listFragments.add(scanFragment);
//initializing PagerAdapter
pagerAdapterWelcome = new PagerAdapter(getSupportFragmentManager(), listFragments);
viewPager.setAdapter(pagerAdapterWelcome);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabDots);
tabLayout.setupWithViewPager(viewPager, true);
}
Adapter:
public class PagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> listFragments;
public PagerAdapter(FragmentManager fm, List<Fragment> listFragments) {
super(fm);
this.listFragments = listFragments;
}
@Override
public Fragment getItem(int i) {
return listFragments.get(i);
}
@Override
public int getCount() {
return listFragments.size();
}
}
Das funktioniert nur, wenn Sie nicht versuchen, SetCurrentItem zu tun. Ich versuche, dies zu verwenden und habe auch Position 1 beim Start angezeigt. –